给一个数组nums和一个值val,你需要原地移除所有等于val的元素,并返回移除元素后的数组的新长度
思路:快慢指针
设置src与dest指针
如果src位置的元素不是val,则将src位置的内容给dest,之后src与dest都往后移
如果src位置的元素等于val则src继续往后走
一直到src遍历数组,此时dest正好为数组的元素个数
code
int RemoveElement(int* nums,int numsSize,int val)
{
int src=0;
int dest=0;
while(src<numSize)
{
if(nums[src]==val)
{
scr++;
}
else
{
nums[dest]=nums[src];
src++;
dest++;
}
}
return dest;
}