注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
本帖最后由 laoxiang33 于 2020-10-26 03:09 编辑
最近刷了双指针类型,做一点总结,大家互相学习。
1)双指针的本质是问题解的状态可以由两个变量确定
2)双指针只出现在array,string,list的题目中
3)不同的类型其实就是方向和速度的组合,速度是指每次移动几个位置
4)双指针其实包括很多的算法,比如
quickSelect 反向同速
Two sum/Ksum 反向同速
BinearySearch 反向不同速
Container with most water, trapping rain water 反向同速
Push Dominoes 同向不同速度
Sliding window 同向同速度
Linkedlist loop 同向不同速度
5)解题的思路是 1)确定移动方向(同向还是反向) 2)根据题目确定移动条件(这个因题而异)3)决定动哪个指针 4)决定速度(一次动一个index还是几个)
6)对leetcode题目的归类
左右相向移动:11, 42, 75, 881, 923
两个/多个array同向不同速移动: Linkedlist Find cycle,457,287,142, 827,K way merge
sliding window: 632,3,978,424, 567,76, 239,992,480,1208, 1248
新人贴,还请加米。多谢多谢!
|