滑动窗口
Trista__
这个作者很懒,什么都没留下…
展开
-
字符串的排列——滑动窗口
LeetCode5671. 思路一:自己想的方法采用哈希表记录s1中有的字符以及数量,双指针遍历s2,如果哈希表中有right指向的元素,把哈希表中的数量-1,并将right后移,判断right与left中间的长度是否与s1一致,若一致就可以返回true了。这里会出现两种特殊情况,一种是哈希表中没有right指向的元素,那里这里需要将left移到right+1的位置,并且把原先减去的值都加回来。第二种是right指向的元素出现的次数已经大于应有的次数,也就是哈希对应的value小于0了,这时候需要把原创 2021-05-16 12:37:57 · 162 阅读 · 0 评论 -
不含有重复字符的 最长子串 的长度(滑动窗口)
不含有重复字符的 最长子串 的长度(滑动窗口法)LeetCode3题目描述:“最长子串”,令人很容易想到滑动窗口,而“不含有重复字符”则可以借助哈希表,因此本题思路为滑动窗口+哈希表实现。定义pre和next指针,表示滑动窗口的起始位置和终止位置,用一个ans变量来维护窗口的最小长度。建立一个哈希map,如果表内不含next指向的元素,则将它加入到map中,next后移,继续检查下一个元素,如果表内含有next指向的元素,则先将头元素移出,令头指针pre后移一位,循环判断。class Solut原创 2021-05-11 11:51:46 · 271 阅读 · 0 评论 -
长度最小的子数组——滑动窗口法
长度最小的子数组——滑动窗口法LeetCode209题目描述:注意题目说的是连续的子数组,所以这道题最简单的做法应该是滑动窗口,时间复杂度O(n),空间复杂度O(1)。定义左右指针分别为left和right表示窗口的起始位置和终止位置,初始都指向0,并用sum变量记录当前滑动窗口所有元素之和,minNum表示滑动窗口的最小长度。left指针先不动,将right指针后移并更新sum的值,若sum>=target,则更新minNum的值,并且此时将sum减去left指向的值,将left后移,直到s原创 2021-05-11 11:10:17 · 201 阅读 · 0 评论