提示有一个数没有删除。
我的思路是,i相当于编号,第一个数,第二个数。
然后第i个和他下一个数是否相同。
如果相同,使用循环把后面所有数组向前移一位,然后数组长度减一(numsSize,题目中系统自动给出数组长度)。
然后就这样,但是提示有一步不行,我不知道哪里出问题了
我本来就是numsSize-1,后来改成-2是因为,改后他提示通过数量高
提示有一个数没有删除。
我的思路是,i相当于编号,第一个数,第二个数。
然后第i个和他下一个数是否相同。
如果相同,使用循环把后面所有数组向前移一位,然后数组长度减一(numsSize,题目中系统自动给出数组长度)。
然后就这样,但是提示有一步不行,我不知道哪里出问题了
修改如下,供参考:
int removeDuplicates(int* nums, int numsSize)
{
int i, j;
for (i = 0; i < numsSize - 1;) {
if (nums[i] == nums[i + 1]) {
for (j = i + 1; j < numsSize - 1; j++) {
nums[j] = nums[j + 1];
}
numsSize--;
}
else
i++;
}
return numsSize;
}