目录
- 1. 思路(图解)
- 2. 代码
题目链接: leetcode 26. 删除有序数组中的重复项
题目描述:
注意返回的是去重后的数组长度,但是输出的是去重后的数组元素。
1. 思路(图解)
思路:快慢指针
1. dst作为下标,初始化为0;src作为下标,初始化为1;
2. 如果nums[dst] == nums[src], src++;
3. 如果nums[dst] != nums[src], dst++, nums[dst] = nums[src], src++;
4. 返回dst + 1就是新数组长度
2. 代码
int removeDuplicates(int* nums, int numsSize) {int dst = 0;int src = 1;while (src < numsSize) {if (nums[dst] == nums[src]) {src++;}else {++dst;nums[dst] = nums[src];++src;}}return dst + 1;
}