![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
滑动窗口
文章平均质量分 74
yuzhang_zy
现在的我不是最好的我,未来的我才是最好的我,每一篇博客都记录着我的成长
展开
-
220 存在重复元素 III(分桶、滑动窗口)
1. 问题描述:在整数数组 nums 中,是否存在两个下标 i 和 j,使得nums [i] 和nums [j]的差的绝对值小于等于 t ,且满足 i 和 j 的差的绝对值也小于等于 ķ 。如果存在则返回 true,不存在返回 false。示例1:输入: nums = [1,2,3,1], k = 3, t = 0输出: true示例 2:输入: nums = [1,0,1,1], k = 1, t = 2输出: true示例 3:输入: nums = [1,5,9,...原创 2020-09-05 10:24:11 · 285 阅读 · 0 评论 -
1838 最高频元素的频数(排序 + 滑动窗口、前缀和 + 二分查找)
1. 问题描述:元素的频数是该元素在一个数组中出现的次数。给你一个整数数组 nums 和一个整数 k 。在一步操作中,你可以选择 nums 的一个下标,并将该下标对应元素的值增加 1 。执行最多 k 次操作后,返回数组中最高频元素的最大可能频数 。示例 1:输入:nums = [1,2,4], k = 5输出:3解释:对第一个元素执行 3 次递增操作,对第二个元素执 2 次递增操作,此时 nums = [4,4,4] 。4 是数组中最高频元素,频数是 3 。示例 2:输入:nums原创 2021-04-28 10:33:36 · 203 阅读 · 0 评论 -
1423 可获得的最大点数(滑动窗口)
1. 问题描述:几张卡牌排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。示例 1:输入:cardPoints = [1,2,3,4,5,6,1], k = 3输出:12解释:第一次行动,不管拿哪张牌,你的点数总是 1 。但是,先拿最右边的卡牌将会最大化你的可获得原创 2021-03-10 22:46:30 · 160 阅读 · 0 评论 -
1695 删除子数组的最大得分(滑动窗口、前缀和、字典)
1. 问题描述:给你一个正整数数组 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解释:原创 2021-01-11 11:32:24 · 295 阅读 · 0 评论 -
209 长度最小的子数组(前缀和+二分查找、滑动窗口)
1. 问题描述:给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。进阶:如果你已经完成了O(n) 时间复杂度的解法, 请尝试O(nlogn) 时间复杂度的解法。2. 思路分析:① 因为需要在一个区间中找到和大于等于s的最小长度,所以这个...原创 2020-11-09 09:36:56 · 329 阅读 · 0 评论 -
1052 爱生气的书店老板(滑动窗口)
1. 问题描述:今天,书店老板有一家店打算试营业customers.length分钟。每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开。在某些时候,书店老板会生气。 如果书店老板在第 i 分钟生气,那么 grumpy[i] = 1,否则 grumpy[i] = 0。 当书店老板生气时,那一分钟的顾客就会不满意,不生气则他们是满意的。书店老板知道一个秘密技巧,能抑制自己的情绪,可以让自己连续X 分钟不生气,但却只能使用一次。请你返回这一天营业下来,...原创 2020-10-21 22:21:56 · 148 阅读 · 0 评论 -
1208 尽可能使字符串相等(滑动窗口)
1. 问题描述:给你两个长度相同的字符串,s 和 t。将 s中的第i个字符变到t中的第 i 个字符需要|s[i] - t[i]|的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。用于变更字符串的最大预算是maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。如果你可以将 s 的子字符串转化为它在 t 中对应的子字符串,则返回可以转化的最大长度。如果 s 中没有子字符串可以转化成 t 中对应的子字符串,则返回...原创 2020-07-15 22:48:38 · 226 阅读 · 0 评论 -
1248 统计优美子数组(滑动窗口)
1. 问题描述:给你一个整数数组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,6], k = 1输出:0解释:数列中不包含任何奇数,所以不存在优美子数组。示例 3:输入:n.原创 2020-07-05 10:19:33 · 225 阅读 · 0 评论 -
1423 可获得的最大点数(滑动窗口)
1. 问题描述:几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。示例 1:输入:cardPoints = [1,2,3,4,5,6,1], k = 3输出:12解释:第一次行动,不管拿哪张牌,你的点数总是 1 。但是,先拿最右边的卡牌将会最原创 2020-05-31 16:39:47 · 248 阅读 · 0 评论 -
1456 定长子串中元音的最大数目(滑动窗口)
1. 问题描述:给你字符串 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-30 17:51:17 · 226 阅读 · 0 评论 -
面试题 17.18. 最短超串(滑动窗口)
1. 问题描述:假设你有两个数组,一个长一个短,短的元素均不相同。找到长数组中包含短数组所有的元素的最短子数组,其出现顺序无关紧要。返回最短子数组的左端点和右端点,如有多个满足条件的子数组,返回左端点最小的一个。若不存在,返回空数组。示例 1:输入:big = [7,5,9,0,2,1,3,5,7,9,1,1,5,8,8,9,7]small = [1,5,9]输出: [7,1...原创 2020-04-22 23:08:50 · 507 阅读 · 0 评论 -
3 无重复字符的最长子串(map、滑动窗口)
1. 问题描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字...原创 2020-04-11 16:31:17 · 288 阅读 · 0 评论 -
76 最小覆盖子串(滑动窗口)
1. 问题描述:给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。示例:输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"说明:如果 S 中不存这样的子串,则返回空字符串 ""。如果 S 中存在这样的子串,我们保证它是唯一的答案。来源:力扣(LeetCode)链接:https://leetc...原创 2020-04-03 22:41:22 · 302 阅读 · 0 评论