news 2026/9/7 4:56:04

这道LeetCode Hard题,用一个转化思想就变简单了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
这道LeetCode Hard题,用一个转化思想就变简单了

求解思路

这道题将"恰好k种"这个条件转化为两个"最多k种"的问题相减。

我们可以这样理解:

如果我们知道有多少个子数组最多包含k种不同数字,再减去最多包含k-1种不同数字的子数组个数,剩下的就是恰好包含k种不同数字的子数组。

想象有一个可伸缩的窗口在数组上滑动,右指针不断向右扩展窗口,每次加入一个新数字就用计数器记录它出现的次数,如果这个数字是第一次出现就让种类数加1。

当窗口内的数字种类超过k时,我们就移动左指针收缩窗口,同时减少对应数字的计数,如果某个数字的计数变为0就让种类数减1,直到窗口内的种类数重新满足不超过k的条件。

在这个过程中,每当右指针固定在某个位置时,从左指针到右指针之间的所有子数组都是满足条件的,所以每次我们把当前窗口的长度也就是r-l+1累加到答案中。

这样遍历完整个数组后,就得到了所有最多包含k种不同数字的子数组总数。

代码实现上,我们使用一个计数数组cnts来记录每个数字在当前窗口中出现的次数,用collect变量维护当前窗口内不同数字的种类数。

通过这种方式,只需要遍历两遍数组分别计算"最多k种"和"最多k-1种",然后做个减法就能得到"恰好k种"的答案。

完整代码

publicstaticintsubarraysWithKDistinct(int[]arr,intk){
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 13:52:18

11、MobX实战应用与特殊API解析

MobX实战应用与特殊API解析 1. ShowCart组件 ShowCart组件用于展示购物车中的商品列表。它复用了 TemplateStepComponent ,并通过 renderDetails 属性插入购物车的详细信息。以下是示例代码: import React from react; import {List,ListItem,ListItemIcon,ListItemT…

作者头像 李华
网站建设 2026/9/5 16:38:29

从加密到解析仅需2分钟:Dify自动化PDF处理黑科技曝光

第一章:从加密到解析仅需2分钟:Dify自动化PDF处理黑科技曝光在企业级文档处理场景中,PDF文件的加密、解析与信息提取长期依赖复杂工具链。Dify最新推出的自动化PDF处理模块,通过AI驱动的工作流实现了端到端的极速处理,…

作者头像 李华
网站建设 2026/9/6 6:53:01

申请TELEC认证需要准备哪些材料?

申请 TELEC 认证的材料需围绕企业资质、产品技术、测试合规、代理授权及样品准备,所有文件以日文或英文提交,核心清单与细节如下:一、基础申请与代理文件认证申请表:使用 TELEC 或指定机构模板,填写企业全称、注册地址…

作者头像 李华
网站建设 2026/9/6 15:15:41

大模型微调技术全解析:程序员必备收藏指南

本文系统介绍大模型微调技术的发展历程与技术路线,详细分析AI发展的四个核心阶段,阐述大模型特点与微调必要性。重点解析PEFT主流技术方案,包括Prompt Tuning、LoRA、QLoRA和AdaLoRA等参数高效微调方法,并探讨未来架构创新、可解释…

作者头像 李华
网站建设 2026/9/6 17:42:11

ABB AF460-30-11 空气断路器

ABB AF460-30-11 是一款空气断路器(Air Circuit Breaker, ACB),属于ABB的Emax系列产品。该系列断路器设计用于低压配电系统,提供高性能的保护功能,适用于工业、商业和基础设施领域。主要技术参数额定电流:3…

作者头像 李华
网站建设 2026/9/5 4:44:47

利用cubemx和HAL库重写江科协的oled驱动程序

I2C配置将PB6、PB7设置为SCL和SDA引脚(硬件I2C)OLED.cvoid OLED_I2C_SendByte(uint8_t Byte) {HAL_I2C_Master_Transmit(&hi2c1, 0x78, &Byte, 1, HAL_MAX_DELAY); }void OLED_WriteCommand(uint8_t Command) {uint8_t buf[]{0x00, Command};HAL…

作者头像 李华