【优先算法】滑动窗口 --(结合例题讲解解题思路)(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 利用规律,使用"滑动窗口"来解决

相关推荐
孙启超几秒前
【AI开发之Rust】第 12 课:并发模型与同步原语
开发语言·后端·rust
-森屿安年-2 分钟前
返回最大数
c++·贪心算法
0+1118 分钟前
算法 --二分查找
c++·算法·leetcode
拂拉氏26 分钟前
【项目实现】 C++ vector实现(空间配置器+异常处理)
c++·vector·异常·空间配置器
qq_1998868734 分钟前
第8板块·第3节:设备间拷贝与点对点(P2P)传输
c++·人工智能·gpu算力·cuda
Omics Pro38 分钟前
新型条件传输模型!虚拟细胞扰动预测
数据库·人工智能·算法·机器学习·自然语言处理
敲代码的瓦龙40 分钟前
Jetpack?DataBinding!!!
android·java·开发语言·mysql·android-studio
爱奥尼欧1 小时前
【C++】map、set 的底层是什么?红黑树五条性质、插入旋转到模拟实现
开发语言·数据结构·c++
黄金龙PLUS1 小时前
5个800比特大状态置换算法的设计与分析
算法·网络安全·密码学·哈希算法·同态加密