题目描述中要求输出k,给的case却都是输出数组的,或者帮我看看能从哪里改进
int removeDuplicates(int* nums, int numsSize) { //将重复元素置为0
int cur = nums[0]; //第一个元素为当前元素
int k = 0; //k初始化为0
for(int i = 1;i < numsSize-1;i++){
if(nums[i]==cur){
cur = nums[i+1]; //指向重复的后一个元素
nums[i] = 0; //重复元素置为0
}
}
for(int i = 0;i<numsSize;i++){ //修改数组
if(nums[i]==0){ //第一个零元素
for(int j = 1;j<numsSize-i-1;j++){
if(nums[j+i]!=0){
nums[i] = nums[j+i]; //非零元素挪至零元素位置
break; //跳出本层循环
}
}
}
}
for(int i = 0;i<numsSize;i++){
if(nums[i]!=0){
k+=1;
}
else break;
}
return k;
}