平时在刷算法题的时候经常会遇到一些套路, 也就是一些类似的小技巧. 这类技巧能够快速的帮我们解决某一类的算法问题. 这里就是整理一下自己遇到的,总结的算法技巧, 以及这些技巧可以应用与哪些场景.
1 滑动窗口(双指针)
个人理解,滑动窗口 的基础就是双指针. 即一个快指针代指窗口的头部, 一个慢指针代指窗口的尾部. 滑动窗口经过的地方就是我们要处理的数据.
如图所示,我们的滑动创建运动方向从左往右, 已经经过了区域1,正在经历区域2,3,4. 还没有经历区域5.
1.1 滑动窗口的特性
通过上面分析可知, 滑动窗口是一个窗口经过一段连续的区域,并实时计算统计经过区域内的一些值. 所以滑动窗口很适用的场景特点也就出来了:
- 单维度数据,比如字符串, 比如一维数组.
- 结果值有连续特性要求的. 因为滑动窗口必然是连续经过计算区域的.所遇到的值也必然是连续的.
1.2 常见场景
未完待续
文档信息
- 本文作者:寒澈
- 本文链接:https://www.hancher.top/2022/08/23/algorithm_skill/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)