LeetCode | 27. 移除元素
- 这道题有一个方法是要删除的数据直接后一个数据挪动到前一个数据,这个方法好不好?
- 最坏的情况下时间复杂度是
O(N^2)
还有一个方法
- 定义一个src定义一个dst,原地直接进行赋值,不进行挪动,不懂的话可以看下图
代码如下:
c
int removeElement(int* nums, int numsSize, int val){
int src = 0,dst = 0;
while(src<numsSize)
{
if(val != nums[src])
{
nums[dst++] = nums[src++];
}
else
{
src++;
}
}
return dst;
}