1、原地移除数组中的所有元素val,要求时间复杂度尾O(N),空间复杂度尾O(1)。
思路1:找到一个val后面数据依次前移覆盖。
思路2:思想将不是val的数放入一个新的数组。
思路3:双指针。——符合要求
思路3实现代码
int removeElement(int* num, int numSize, int val)
{
int src = 0;
int dst = 0;
while (src < numSize)
{
if (num[src] != val)
{
num[dst++] = num[src++];
}
else
{
src++;
}
}
return dst;
}