给定一个有序数组,删除重复内容,使每个元素只出现一次,并返回新的长度。
不要为其他数组分配额外的空间,您必须通过在 O(1)额外的内存中就地修改输入数组来实现这一点。
思路:
int removeElement(int* nums, int numsSize)
{
if (numsSize == 0)
{
return 0;
}
int i = 0;
int j = 1;
int dest = 0;
while (j < numsSize)
{
if (nums[i] == nums[j])
{
j++;
}
else
{
nums[dest] = nums[i];
i = j;
j++;
dest++;
}
}
nums[dest] = nums[i];
++dest;
return dest;
}