力扣-双指针问题
1.922. 按奇偶排序数组 II,可以称之为数组中的奇偶双指针,一个指针专指向奇数位,一位专指向偶数位置。
2.633. 平方数之和,隐含了巧妙的双指针,而且不要直接相加,会溢出。
3.剑指 Offer 57. 和为s的两个数字,167. 两数之和 II - 输入有序数组,比较基础的首尾对撞指针,非常基础,但需考虑相加数值溢出的问题,转为long long。
4.977. 有序数组的平方,有难度,首尾分别比较。
5.283. 移动零,left指向处理好的末尾,right指向待处理序列开头
6.26. 删除排序数组中的重复项,快慢指针,j遍历,i指向处理好元素的尾部,同时返回i+1
7.27. 移除元素,挺难的,快慢指针,i指向处理好的末尾,j指向待处理(赋值给i位置)的元素;j控制数组长度,与i指向的元素互换。
8.86. 分隔链表,其实感觉这个不是双指针的问题,这个是需要新建两个头结点的,大于小于分别在两个链表中。
9.16. 最接近的三数之和,思路可以想到,先排序,判断更新左右指针,有细节,得注意。
10.234. 回文链表,涉及到的知识点还蛮多的,快慢指针、反转链表。
11.334. 递增的三元子序列,O(n)的解法用了双指针,small和mid分别指向最小值和中间,很绝。
12.42. 接雨水,每个柱的左右边界是由左右最大值中的较小值来确定的,有max_left和max_right分别记录,left小时从左到右遍历,right小时从右到左遍历。还是很有技巧的啊,挺难反应的!