![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
滑动窗口
文章平均质量分 51
“如果世界上曾经有个最大值出现过,其他值都会变成将就,而我不愿意将就”
向光.
路过人间,绝非一瞬间.
展开
-
剑指 Offer II 041. 滑动窗口的平均值_____使用队列 / 循环数组实现
doublenext(intval)成员函数next每次调用的时候都会往滑动窗口增加一个整数,请计算并返回数据流中最后size个值的移动平均值,即滑动窗口里所有数字的平均值。//返回4.66667=(1+10+3)/3。//返回6.0=(10+3+5)/3。//返回5.5=(1+10)/2。给定一个整数数据流和一个窗口大小,根据该滑动窗口的大小,计算滑动窗口里所有数字的平均值。...原创 2022-07-17 13:17:24 · 111 阅读 · 0 评论 -
2022年度杭州未来科技城数字经济人才编程大赛02.黑白棋游戏_____滑动窗口
现有一个黑白棋游戏,初始时给出一排棋子,记作数组chess,其中白色棋子记作0,黑色棋子记作1。输入chess=[1,1,0,1,0,1,0,0,1,0,1]最佳方案为[1,1,1,1,1,1,0,0,0,0,0],输入chess=[1,0,1,0,1,0]输入chess=[0,0,0,1,0][1,1,1,0,0,0],交换1次;[0,1,1,1,0,0],交换2次;[0,0,1,1,1,0],交换1次;[0,0,0,1,1,1],交换2次。...原创 2022-07-16 13:22:11 · 585 阅读 · 0 评论 -
LeetCode 438. 找到字符串中所有字母异位词__滑动窗口
给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。显然这题我们可以使用滑动窗口来解决,即直接维护p字符串长度的窗口,每当窗口满时就判断一下窗口内的各种字母数量是否和p的一致即可。我们可以不直接维护普通滑窗,因为我们发现上述方法一,由于是维护一个有序序列来模拟滑窗,后面还需要一个哈希数组来表示滑窗内含有的字母种类及数量,因此我们可以想只创建一次哈希数组即可,在滑窗滑出老元素和滑原创 2022-06-26 22:00:24 · 87 阅读 · 0 评论 -
Leetcode.1208. 尽可能使字符串相等——滑动窗口思想
1208. 尽可能使字符串相等给你两个长度相同的字符串,s 和 t。将 s 中的第 i 个字符变到 t 中的第 i 个字符需要 |s[i] - t[i]| 的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。用于变更字符串的最大预算是 maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。如果你可以将 s 的子字符串转化为它在 t 中对应的子字符串,则返回可以转化的最大长度。如果 s 中没有子字符串可以转化成 t 中对应的子字符串,则原创 2022-01-11 08:26:13 · 122 阅读 · 0 评论 -
Leetcode.239. 滑动窗口最大值---暴力/优化暴力/单调队列
239. 滑动窗口最大值给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6原创 2021-11-22 17:53:08 · 239 阅读 · 0 评论 -
Leetcode.187. 重复的DNA序列---哈希+ 滑动窗口
187. 重复的DNA序列所有 DNA 都由一系列缩写为 ‘A’,‘C’,‘G’ 和 ‘T’ 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。编写一个函数来找出所有目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。示例 1:输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"输出:["AAAAACCCCC","CCCCCAAAAA"]示例 2:输入:s = "AA原创 2021-10-09 14:55:00 · 133 阅读 · 0 评论 -
Leetcode.1052. 爱生气的书店老板---滑动窗口维护集合
1052. 爱生气的书店老板今天,书店老板有一家店打算试营业 customers.length 分钟。每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开。在某些时候,书店老板会生气。 如果书店老板在第 i 分钟生气,那么 grumpy[i] = 1,否则 grumpy[i] = 0。 当书店老板生气时,那一分钟的顾客就会不满意,不生气则他们是满意的。书店老板知道一个秘密技巧,能抑制自己的情绪,可以让自己连续 X 分钟不生气,但却只能使用一次。请你返回这一天原创 2021-07-26 21:06:56 · 141 阅读 · 0 评论 -
Leetcode.1208. 尽可能使字符串相等---滑动窗口——“如果世界上曾经有个最大值出现过,其他值都会变成将就,而我不愿意将就”
1208. 尽可能使字符串相等给你两个长度相同的字符串,s 和 t。将 s 中的第 i 个字符变到 t 中的第 i 个字符需要 |s[i] - t[i]| 的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。用于变更字符串的最大预算是 maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。如果你可以将 s 的子字符串转化为它在 t 中对应的子字符串,则返回可以转化的最大长度。如果 s 中没有子字符串可以转化成 t 中对应的子字符串,则原创 2021-07-24 16:53:28 · 99 阅读 · 0 评论 -
leetcode.3. 无重复字符的最长子串---利用ArrayList类集合维护滑动窗口
3. 无重复字符的最长子串给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必原创 2021-07-17 22:35:23 · 86 阅读 · 0 评论 -
力扣567. 字符串的排列---滑动窗口与哈希
567. 字符串的排列给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。换句话说,第一个字符串的排列之一是第二个字符串的 子串 。示例 1:输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").示例 2:输入: s1= "ab" s2 = "eidboaoo"输出: False 提示:输入的字符串只包含小写字母两个字符串的长度都在 [1, 10,000] 之间题解:方原创 2021-04-05 16:56:09 · 208 阅读 · 0 评论 -
蓝桥杯:人物相关性分析(双指针+双数组存储)
蓝桥杯:人物相关性分析题解:最容易想到的便是枚举遍历,但由于数量巨大必定会超时。因此我们可考虑使用双指针来模拟滑动窗口解决该题。首先我们创建两个数组用双指针查找分别存储出现的Alice和Bob的头部下标,接着我们再遍历两个数组,任选出现的Alice和Bob的下标进行逻辑上的比较,符合题目范围则sum加一,否则不加即可。代码:#include <bits/stdc++.h>using namespace std;char str[1000001];int a1[1000000原创 2021-03-28 17:28:41 · 401 阅读 · 0 评论 -
力扣3. 无重复字符的最长子串---滑动窗口+哈希表
3. 无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“p原创 2021-01-09 13:50:14 · 148 阅读 · 0 评论