⭐️ 题目描述
🌟 leetcode链接:删除有序数组中的重复项
代码:
/*
思路:双指针问题
[1,1,2]
src
-> [ 1 , 1 , 2 ]
dest
nums[src] == nums[dest] => src++;
src
-> [ 1 , 1 , 2 ]
dest
nums[src] != nums[dest] => nums[++dest] = nums[src++];
src
-> [ 1 , 2 , 2 ]
dest
循环结束
result: [1 , 2] 返回数组长度,但是此时dest指向下标1位置,所以返回值为 ++dest
*/
int removeDuplicates(int* nums, int numsSize){
int src = 1;
int dest = 0;
while (src < numsSize) {
if (nums[src] == nums[dest]) {
src++;
} else {
nums[++dest] = nums[src++];
}
}
return ++dest;
}