首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【优选算法】滑动窗口 --(结合例题讲解解题思路)(C++)

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

作者头像
是预备程序员a
发布2025-01-12 11:02:23
发布2025-01-12 11:02:23
2070
举报
文章被收录于专栏:C++C++

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 利用规律,使用“滑动窗口”来解决
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.什么是滑动窗口?
  • 2. 滑动窗口例题
    • 2.1 例题1:长度最小的子数组
      • 2.1.1 解题思路
      • 2.1.2 方法一:暴力枚举出所有的子数组的和
      • 2.1.3 方法二:使用 “同向双指针” 也就是滑动窗口来进行优化
    • 2.2 例题2:无重复字符的最长子串
      • 2.2.1 方法一:暴力枚举+哈希表(判断字符是否重复出现)
      • 2.2.2 利用规律,使用“滑动窗口”来解决
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档