原地移除数组中所有的元素
val
,要求时间复杂度为
O(N)
,空间复杂度为
O(1)
。
解题思路:
利用双指针来控制数组中的元素,同时建一个循坏来删除与val相等的元素。最后返回dst指针即可。
实现代码:
int removeElement(int* nums, int numsSize, int val){
int src=0;
int dst=0;
while(src < numsSize)
{
if(nums[src] == val)
{
src++;
}
else
{
nums[dst]=nums[src];
src++;
dst++;
}
}
return dst;
}