题目:原题链接(困难)

标签:哈希表、数组、双指针、滑动窗口

解法 时间复杂度 空间复杂度 执行用时
Ans 1 (Python) O(N)O(N)O(N) O(N)O(N)O(N) 724ms (44.79%)
Ans 2 (Python)
Ans 3 (Python)

解法一:

class Solution:def subarraysWithKDistinct(self, A: List[int], K: int) -> int:i1, i2, i3 = 0, 0, 0  # 有K个不同的数组的开头,有K-1个不同的数组的开头,两个数组的结尾count1, count2 = collections.Counter(), collections.Counter()  # i1到i3的数组的情况,i2到i3的数组的情况ans = 0size = len(A)while i3 < size:# 移动数组右侧边缘指针ch3 = A[i3]count1[ch3] += 1count2[ch3] += 1# 移动i1到i3的数组左侧边缘指针while i1 <= i3 and len(count1) > K:ch1 = A[i1]count1[ch1] -= 1if count1[ch1] == 0:del count1[ch1]i1 += 1# 移动i2到i3的数组左侧边缘指针while i2 <= i3 and len(count2) > K - 1:ch2 = A[i2]count2[ch2] -= 1if count2[ch2] == 0:del count2[ch2]i2 += 1# 累加结果if len(count1) == K and len(count2) == K - 1:ans += i2 - i1i3 += 1return ans

LeetCode题解(0992):K个不同呢的子数组(Python)相关推荐

  1. LeetCode 992. K 个不同整数的子数组(双指针)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续.不一定独立的子数组为好子数组. (例如,[1,2,3,1, ...

  2. LeetCode 974. 和可被 K 整除的子数组 | Python

    974. 和可被 K 整除的子数组 题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/subarray-sums-divisible-by-k 题目 ...

  3. leetcode 992. K 个不同整数的子数组(滑动窗口)

    给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续.不一定独立的子数组为好子数组. (例如,[1,2,3,1,2] 中有 3 个不同的整数:1,2,以及 3 ...

  4. LeetCode 1764. 通过连接另一个数组的子数组得到一个数组

    文章目录 1. 题目 2. 解题 1. 题目 给你一个长度为 n 的二维整数数组 groups ,同时给你一个整数数组 nums . 你是否可以从 nums 中选出 n 个 不相交 的子数组,使得第 ...

  5. 卷进大厂系列之LeetCode刷题笔记:长度最小的子数组(中等)

    学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给定一个含有 n 个正整数的数组和一个正整数 target . 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl ...

  6. C#LeetCode刷题之#581-最短无序连续子数组( Shortest Unsorted Continuous Subarray)

    问题 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序. 你找到的子数组应是最短的,请输出它的长度. 输入: [2, 6, 4, 8, 10, ...

  7. leetcode题解347-前 K 个高频元素

    问题描述 给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = ...

  8. LeetCode移掉k位数字(贪心算法)python

    描述 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. num的长度小于10002,且将≥k.给定的num不包含任何前导零. 您在真实的面试中是否遇到过这个题? ...

  9. LeetCode题解(1628):设计带解析函数的表达式树(Python)

    题目:原题链接(中等) 标签:设计.树.二叉树.深度优先搜索 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O ( N ) O(N) O(N) O ( N ) O(N) O(N ...

最新文章

  1. 计算TD-LTE DL 峰值速率的工具和相关参数
  2. Git『Everything up-to-date』问题解决
  3. 一个数据应用闭环(转载)
  4. 年龄计算、工作表合并、高级筛选(三)
  5. Unity3D学习(五):实现一个简单的视觉感知
  6. [Java基础]List集合子类特点
  7. PyTorch 1.8 发布,支持 AMD,优化大规模训练
  8. 修改telnet提示并非_iPhone修改微信提示音,iOS12可用,无需越狱详细教程
  9. 在Nginx服务器上用Jenkins发布Vue/React代码的步骤
  10. frok的一个Demo测试素数
  11. excel生成趋势线和函数关系式
  12. 练习1:根据老师代码,完成奥运五环的绘图程序
  13. 在子页面控制父页面iframe的高度
  14. Latex文献报错 Something‘s wrong--perhaps a missing \item. \end{thebibliography}
  15. java 读取浏览器_JAVA读取文件流,设置浏览器下载或直接预览操作
  16. 实用工具|零代码实现高德地图POI数据下载
  17. The Game C语言
  18. Eclipse如何导入jar包
  19. Android使用VideoView播放网络视频
  20. 北京-绕五环骑行(完美环绕)2017-03-11

热门文章

  1. java groupbyu_Java8的groupBy实现集合的分组
  2. ui动效 unity_Unity3D 虚拟现实开发(五)-UI篇
  3. 抛开鼠标,像极客一样工作!
  4. 关于python打包py文件成exe文件
  5. 【环境配置】cudnn无注册下载+无法下载问题
  6. 记录一个子串在整串种出现的次数(JAVA)
  7. 新零售发展至今电子价签起到的作用
  8. MES系统国内厂商排名
  9. 上三角数字三角形(一)
  10. CDO安装步骤(for Mac)