【优先算法】滑动窗口 --(结合例题讲解解题思路)(C++)

目录

​编辑

1.什么是滑动窗口?

[2. 滑动窗口例题](#2. 滑动窗口例题)

[2.1 例题1:长度最小的子数组](#2.1 例题1:长度最小的子数组)

[2.1.1 解题思路](#2.1.1 解题思路)

[2.1.2 方法一:暴力枚举出所有的子数组的和](#2.1.2 方法一:暴力枚举出所有的子数组的和)

[2.1.3 方法二:使用 "同向双指针" 也就是滑动窗口来进行优化](#2.1.3 方法二:使用 “同向双指针” 也就是滑动窗口来进行优化)

[2.2 例题2:无重复字符的最长子串](#2.2 例题2:无重复字符的最长子串)

[2.2.1 方法一:暴力枚举+哈希表(判断字符是否重复出现)](#2.2.1 方法一:暴力枚举+哈希表(判断字符是否重复出现))

[2.2.2 利用规律,使用"滑动窗口"来解决](#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),同样这个方法我们不讲解,没有任何学习价值,最佳解法请看解法二。

2.2.2 利用规律,使用"滑动窗口"来解决

相关推荐
微露清风几秒前
系统性学习C++-第二十讲-哈希表实现
c++·学习·散列表
raining_peidx几秒前
xxljob源码
java·开发语言
肥猪猪爸1 分钟前
双重检查锁(DCL)与 volatile 的关键作用
java·开发语言·单例模式
bubiyoushang8884 分钟前
MATLAB实现雷达恒虚警检测
数据结构·算法·matlab
wu_asia8 分钟前
编程技巧:如何高效输出特定倍数数列
c语言·数据结构·算法
yaoxin52112310 分钟前
289. Java Stream API - 从字符串的字符创建 Stream
java·开发语言
清 澜14 分钟前
c++高频知识点总结 第 1 章:语言基础与预处理
c++·人工智能·面试
AlenTech16 分钟前
207. 课程表 - 力扣(LeetCode)
算法·leetcode·职场和发展
癫狂的兔子17 分钟前
【Python】【Flask】抽奖功能
开发语言·python·flask
你怎么知道我是队长19 分钟前
C语言---无名位域
c语言·开发语言