目录
编辑
1.什么是滑动窗口?
2. 滑动窗口例题
2.1 例题1:长度最小的子数组
2.1.1 解题思路
2.1.2 方法一:暴力枚举出所有的子数组的和
2.1.3 方法二:使用 “同向双指针” 也就是滑动窗口来进行优化
2.2 例题2:无重复字符的最长子串
2.2.1 方法一:暴力枚举+哈希表(判断字符是否重复出现)
2.2.2 利用规律,使用“滑动窗口”来解决
1.什么是滑动窗口?
滑动窗口是两个指针,向着一个方向,不会退,像一个窗口般的移动。
2. 滑动窗口例题
2.1 例题1:长度最小的子数组
[力扣-长度最小的子数组]https://leetcode.cn/problems/minimum-size-subarray-sum/description/
2.1.1 解题思路
2.1.2 方法一:暴力枚举出所有的子数组的和
这种时间复杂度太高,为O(n^2),解法太lou。有逼格的解法请看解法二
2.1.3 方法二:使用 “同向双指针” 也就是滑动窗口来进行优化
2.2 例题2:无重复字符的最长子串
力扣-无重复字串的最长子串https://leetcode.cn/problems/longest-substring-without-repeating-characters/description/
2.2.1 方法一:暴力枚举+哈希表(判断字符是否重复出现)
时间复杂度为O(N^2),同样这个方法我们不讲解,没有任何学习价值,最佳解法请看解法二。