LeetCode题解(0992):K个不同呢的子数组(Python)
题目:原题链接(困难)
标签:哈希表、数组、双指针、滑动窗口
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
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)相关推荐
- LeetCode 992. K 个不同整数的子数组(双指针)
文章目录 1. 题目 2. 解题 1. 题目 给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续.不一定独立的子数组为好子数组. (例如,[1,2,3,1, ...
- LeetCode 974. 和可被 K 整除的子数组 | Python
974. 和可被 K 整除的子数组 题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/subarray-sums-divisible-by-k 题目 ...
- leetcode 992. K 个不同整数的子数组(滑动窗口)
给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续.不一定独立的子数组为好子数组. (例如,[1,2,3,1,2] 中有 3 个不同的整数:1,2,以及 3 ...
- LeetCode 1764. 通过连接另一个数组的子数组得到一个数组
文章目录 1. 题目 2. 解题 1. 题目 给你一个长度为 n 的二维整数数组 groups ,同时给你一个整数数组 nums . 你是否可以从 nums 中选出 n 个 不相交 的子数组,使得第 ...
- 卷进大厂系列之LeetCode刷题笔记:长度最小的子数组(中等)
学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给定一个含有 n 个正整数的数组和一个正整数 target . 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl ...
- C#LeetCode刷题之#581-最短无序连续子数组( Shortest Unsorted Continuous Subarray)
问题 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序. 你找到的子数组应是最短的,请输出它的长度. 输入: [2, 6, 4, 8, 10, ...
- leetcode题解347-前 K 个高频元素
问题描述 给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = ...
- LeetCode移掉k位数字(贪心算法)python
描述 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. num的长度小于10002,且将≥k.给定的num不包含任何前导零. 您在真实的面试中是否遇到过这个题? ...
- LeetCode题解(1628):设计带解析函数的表达式树(Python)
题目:原题链接(中等) 标签:设计.树.二叉树.深度优先搜索 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O ( N ) O(N) O(N) O ( N ) O(N) O(N ...
最新文章
- 计算TD-LTE DL 峰值速率的工具和相关参数
- Git『Everything up-to-date』问题解决
- 一个数据应用闭环(转载)
- 年龄计算、工作表合并、高级筛选(三)
- Unity3D学习(五):实现一个简单的视觉感知
- [Java基础]List集合子类特点
- PyTorch 1.8 发布,支持 AMD,优化大规模训练
- 修改telnet提示并非_iPhone修改微信提示音,iOS12可用,无需越狱详细教程
- 在Nginx服务器上用Jenkins发布Vue/React代码的步骤
- frok的一个Demo测试素数
- excel生成趋势线和函数关系式
- 练习1:根据老师代码,完成奥运五环的绘图程序
- 在子页面控制父页面iframe的高度
- Latex文献报错 Something‘s wrong--perhaps a missing \item. \end{thebibliography}
- java 读取浏览器_JAVA读取文件流,设置浏览器下载或直接预览操作
- 实用工具|零代码实现高德地图POI数据下载
- The Game C语言
- Eclipse如何导入jar包
- Android使用VideoView播放网络视频
- 北京-绕五环骑行(完美环绕)2017-03-11