目录
- 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;
}