关于滑动窗口
youngsea8
喜欢学习!
展开
-
567. 字符串的排列 滑动窗口,简单题
思路 设置一个字符数组a[26]保存s1所有的字符出现的次数 设置一个字符数组b[26]保存滑动窗口内吗,s2所有的满足条件的字符出现的次数,什么叫**满足条件?**就是[left,right)的范围内满足包含b中的字符。 具体看代码,思路不难。 代码 执行用时:4 ms, 在所有 C++ 提交中击败了96.20%的用户 内存消耗:7.1 MB, 在所有 C++ 提交中击败了81.89%的用户 class Solution { public: int a[26]={0},b[26]={0};原创 2021-04-15 23:00:11 · 63 阅读 · 0 评论 -
1040. 移动石子直到连续 II 思维题
1040. 移动石子直到连续 II 思维题 思路 思路 有补充的思路在代码注释中阐明。 代码 执行用时:16 ms, 在所有 C++ 提交中击败了95.45%的用户 内存消耗:11.9 MB, 在所有 C++ 提交中击败了59.09%的用户 class Solution { public: // 缩小左边端点和右边端点的距离 vector<int> numMovesStonesII(vector<int>& stones) { int n=st原创 2021-04-15 22:59:07 · 152 阅读 · 0 评论 -
424. 替换后的最长重复字符 滑动窗口,好题
解题思路 原本的解题思路,枚举最长字符串的第一个字符,然后不断向后寻找最长的字符串,思路错误,因为s里面的字符不一定是最长字符串的第一个字符。 正确的思路:滑动窗口 设置一个left指针,一个right指针: left=right=0; 设置一个res=0,记录我们的结果。 设置maxCharNum维护窗口中也就是[left,right)区间内的出现最多的字符的个数,这样剩下的字符个数就是remain=right-left-maxCharNum,当remain<k的时候,所有的字符可以被替换,原创 2021-04-13 15:14:16 · 77 阅读 · 0 评论