两道双指针问题。
26.删除排序数组中的重复项
题目描述
1 | 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 |
C++
1 | class Solution { |
15. 三数之和(双指针)
问题描述
1 | 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ? |
思路
- 因为需要输出所有结果,所以不推荐使用 map 来做
- 判断
a + b + c = 0,实际上等价于判断-a = b + c - 基本思路:对数组排序后,对每个
a,用首尾双指针进行遍历,具体过程看代码更清晰 - 去重的方法:排序后,跳过相同的数即可
- 注意边界条件
C++
1 | class Solution { |