常见应用:
1、遍历、递归
2、回溯/分支限界
(递归入口进行约束、剪枝)
3、动态规划
(归纳动态方程)
4、哈希表
(快查找,空间换时间)
串(划定一段符合要求的区间):
1、前缀和
(常用于边界影响不明显,主要依靠区间整体属性决定,如数值和、积)
2、滑动窗口
(常用于边界影响明显,可决定窗口两端滑动下一步距离)
3、动态规划
(常见于字符串对比编辑类问题)
链表:
1、双指针 fast + slow
(常用于检测环,fast 2步,slow 1步;相遇后重置 fast,各1步直到相遇即到环入口)
(查找链表中点)
2、三指针
(反向链表)
数组:
1、旋转数组(循环数组,向前移动 k 位)
(三次反转)全反转 + 前 k 个反转 + 后 n-k 个反转