力扣-双指针问题

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小时从右到左遍历。还是很有技巧的啊,挺难反应的!

原文地址:https://www.cnblogs.com/BlueBlueSea/p/14172662.html