滑动窗口法
文章平均质量分 56
我很忙2010
咩
展开
-
leetcode 最少交换次数来组合所有的 1 II
交换定义为选中一个数组中的两个互不相同的位置并交换二者的值。环形数组是一个数组,可以认为第一个元素和最后一个元素相邻。给你一个二进制环形数组nums,返回在任意位置将数组中的所有1聚集在一起需要的最少交换次数。示例 1:输入:nums = [0,1,0,1,1,0,0]输出:1解释:这里列出一些能够将所有 1 聚集在一起的方案:[0,0,1,1,1,0,0] 交换 1 次。[0,1,1,1,0,0,0] 交换 1 次。[1,1,0,0,0,...原创 2022-01-09 22:18:51 · 312 阅读 · 0 评论 -
leetcode 2090. 半径为 k 的子数组平均值
给你一个下标从0开始的数组nums,数组中有n个整数,另给你一个整数k。半径为 k 的子数组平均值是指:nums中一个以下标i为中心且半径为k的子数组中所有元素的平均值,即下标在i - k和i + k范围(含i - k和i + k)内所有元素的平均值。如果在下标i前或后不足k个元素,那么半径为 k 的子数组平均值是-1。构建并返回一个长度为n的数组avgs,其中avgs[i]是以下标i为中心的子数组的半径为 k 的子...原创 2021-11-29 23:49:33 · 138 阅读 · 0 评论 -
leetcode 考试的最大困扰度(C++、java、python)
一位老师正在出一场由n道判断题构成的考试,每道题的答案为 true (用'T'表示)或者 false (用'F'表示)。老师想增加学生对自己做出答案的不确定性,方法是最大化有连续相同结果的题数。(也就是连续出现 true 或者连续出现 false)。给你一个字符串answerKey,其中answerKey[i]是第i个问题的正确结果。除此以外,还给你一个整数k,表示你能进行以下操作的最多次数:每次操作中,将问题的正确答案改为'T'或者'F'(也就是将an...原创 2021-10-03 21:38:22 · 323 阅读 · 0 评论 -
leetcode 5630. 删除子数组的最大得分(C++、Java)
给你一个正整数数组 nums ,请你从中删除一个含有 若干不同元素 的子数组。删除子数组的 得分 就是子数组各元素之 和 。返回 只删除一个 子数组可获得的 最大得分 。如果数组 b 是数组 a 的一个连续子序列,即如果它等于 a[l],a[l+1],…,a[r] ,那么它就是 a 的一个子数组。示例 1:输入:nums = [4,2,4,5,6]输出:17解释:最优子数组是 [2,4,5,6]示例 2:输入:nums = [5,2,1,2,5,2,1,2,5]输出:8解释:最优子数组是原创 2020-12-20 17:17:05 · 212 阅读 · 0 评论 -
leetcode 1658. 将 x 减到 0 的最小操作数(C++)
给你一个整数数组nums和一个整数x。每一次操作时,你应当移除数组nums最左边或最右边的元素,然后从x中减去该元素的值。请注意,需要修改数组以供接下来的操作使用。如果可以将x恰好减到0,返回最小操作数;否则,返回-1。示例 1:输入:nums = [1,1,4,2,3], x = 5输出:2解释:最佳解决方案是移除后两个元素,将 x 减到 0 。示例 2:输入:nums = [5,6,7,8,9], x = 4输出:-1示例...原创 2020-11-21 21:46:32 · 840 阅读 · 0 评论 -
leetcode 1461. 检查一个字符串是否包含所有长度为 K 的二进制子串(C++)
给你一个二进制字符串s和一个整数k。如果所有长度为k的二进制字符串都是s的子串,请返回 True ,否则请返回 False 。示例 1:输入:s = "00110110", k = 2输出:true解释:长度为 2 的二进制串包括 "00","01","10" 和 "11"。它们分别是 s 中下标为 0,1,3,2 开始的长度为 2 的子串。示例 2:输入:s = "00110", k = 2输出:true示例 3:输入:s = "0110"...原创 2020-05-31 21:28:44 · 409 阅读 · 0 评论 -
leetcode 1456. 定长子串中元音的最大数目(C++)
给你字符串s和整数k。请返回字符串s中长度为k的单个子字符串中可能包含的最大元音字母数。英文中的元音字母为(a,e,i,o,u)。示例 1:输入:s = "abciiidef", k = 3输出:3解释:子字符串 "iii" 包含 3 个元音字母。示例 2:输入:s = "aeiou", k = 2输出:2解释:任意长度为 2 的子字符串都包含 2 个元音字母。示例 3:输入:s = "leetcode", k = 3输出...原创 2020-05-25 15:44:55 · 449 阅读 · 0 评论 -
leetcode 面试题57 - II. 和为s的连续正数序列(C++)
输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制:1 <= target...原创 2020-03-06 14:31:14 · 197 阅读 · 0 评论 -
leetcode 1358. 包含所有三种字符的子字符串数目(C++)
给你一个字符串s,它只包含三种字符 a, b 和 c 。请你返回 a,b 和 c 都至少出现过一次的子字符串数目。示例 1:输入:s = "abcabc"输出:10解释:包含 a,b 和 c 各至少一次的子字符串为 "abc", "abca", "abcab", "abcabc", "bca", "bcab", "bcabc", "cab", "cabc" 和 "a...原创 2020-02-23 01:03:08 · 590 阅读 · 0 评论 -
leetcode 1343. 大小为 K 且平均值大于等于阈值的子数组数目(C++)
给你一个整数数组arr和两个整数k和threshold。请你返回长度为k且平均值大于等于threshold的子数组数目。示例 1:输入:arr = [2,2,2,2,5,5,5,8], k = 3, threshold = 4输出:3解释:子数组 [2,5,5],[5,5,5] 和 [5,5,8] 的平均值分别为 4,5 和 6 。其他长度为 3 的子数...原创 2020-02-09 00:56:26 · 210 阅读 · 0 评论 -
LeetCode 438. 找到字符串中所有字母异位词(C++、python)
给定一个字符串s和一个非空字符串p,找到s中所有是p的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串s和p的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。 不考虑答案输出的顺序。示例1:输入:s: "cbaebabacd" p: "abc"输出:[0, 6]解释:起始索引等于 0...原创 2018-12-29 23:47:57 · 228 阅读 · 0 评论 -
leetcode 1297. 子串的最大出现次数(C++)
给你一个字符串s,请你返回满足以下条件且出现次数最大的任意子串的出现次数:子串中不同字母的数目必须小于等于maxLetters。 子串的长度必须大于等于minSize且小于等于maxSize。示例 1:输入:s = "aababcaab", maxLetters = 2, minSize = 3, maxSize = 4输出:2解释:子串 "aab" 在...原创 2019-12-22 13:04:55 · 536 阅读 · 0 评论 -
LeetCode 209. 长度最小的子数组(C++、python)
给定一个含有n个正整数的数组和一个正整数s ,找出该数组中满足其和≥ s的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组[4,3]是该条件下的长度最小的连续子数组。C++class Solution {public: int minSubA...原创 2018-11-19 18:37:33 · 508 阅读 · 1 评论 -
leetcode 1248. 统计「优美子数组」(C++)
给你一个整数数组nums和一个整数k。如果某个连续子数组中恰好有k个奇数数字,我们就认为这个子数组是「优美子数组」。请返回这个数组中「优美子数组」的数目。示例 1:输入:nums = [1,1,2,1,1], k = 3输出:2解释:包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] 。示例 2:输入:nums = [2,4...原创 2019-11-09 12:28:00 · 427 阅读 · 0 评论 -
LeetCode 424. 替换后的最长重复字符(C++、python)
给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换k次。在执行上述操作后,找到包含重复字母的最长子串的长度。注意:字符串长度 和k不会超过104。示例 1:输入:s = "ABAB", k = 2输出:4解释:用两个'A'替换为两个'B',反之亦然。示例 2:输入:s = "AABABBA", k =...原创 2019-05-26 16:10:39 · 659 阅读 · 0 评论 -
leetcode 220. 存在重复元素 III(C++)
给定一个整数数组,判断数组中是否有两个不同的索引i和j,使得nums [i]和nums [j]的差的绝对值最大为t,并且i和j之间的差的绝对值最大为ķ。示例1:输入: nums = [1,2,3,1], k = 3, t = 0输出: true示例 2:输入: nums = [1,0,1,1], k = 1, t = 2输出: true示例 ...原创 2019-06-22 18:18:00 · 326 阅读 · 0 评论 -
leetcode 1100. 长度为 K 的无重复字符子串(C++)
给你一个字符串S,找出所有长度为K且不含重复字符的子串,请你返回全部满足要求的子串的数目。示例 1:输入:S = "havefunonleetcode", K = 5输出:6解释:这里有 6 个满足题意的子串,分别是:'havef','avefu','vefun','efuno','etcod','tcode'。示例 2:输入:S = "home", K ...原创 2019-06-30 00:07:17 · 570 阅读 · 0 评论 -
leetcode 1151. 最少交换次数来组合所有的 1(C++)
给出一个二进制数组data,你需要通过交换位置,将数组中任何位置上的 1 组合到一起,并返回所有可能中所需最少的交换次数。示例 1:输入:[1,0,1,0,1]输出:1解释: 有三种可能的方法可以把所有的 1 组合在一起:[1,1,1,0,0],交换 1 次;[0,1,1,1,0],交换 2 次;[0,0,1,1,1],交换 1 次。所以最少的交换次数为 1。...原创 2019-08-11 13:47:01 · 2285 阅读 · 0 评论 -
leetcode 1208. 尽可能使字符串相等(C++)
给你两个长度相同的字符串,s和t。将s中的第i个字符变到t中的第i个字符需要|s[i] - t[i]|的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。用于变更字符串的最大预算是maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。如果你可以将s的子字符串转化为它在t中对应的子字符串,则...原创 2019-09-29 12:57:05 · 291 阅读 · 0 评论 -
leetcode 1052. 爱生气的书店老板(C++、python)
今天,书店老板有一家店打算试营业customers.length分钟。每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开。在某些时候,书店老板会生气。 如果书店老板在第i分钟生气,那么grumpy[i] = 1,否则grumpy[i] = 0。 当书店老板生气时,那一分钟的顾客就会不满意,不生气则他们是满意的。书店老板知道一个秘密技巧...原创 2019-05-28 17:12:34 · 486 阅读 · 0 评论