思路用双指针更简单,直接用一个数组,开始src和dst都为0,一起往后走(先走dst),当dst遇到val就停下,src接着走,走到不是val的地方,然后把src赋值给dst,在一起++,往后面走。结束条件是src走到结尾。
int removeElement(int* nums, int numsSize, int val) {
int det=0;
int src=0;
while(src<numsSize) //src结尾就结束了
{
if(nums[src]!=val)
{
nums[det++]=nums[src++];//先加det
}
else
src++;
}
return det;
}