题目描述:
代码实现:
1、指针实现
int removeElement(int* nums, int numsSize, int val) {int* dst = nums, * src = nums;int n1 = 0,n2=0;while (n1+n2 < numsSize){if (*src != val){*dst = *src;dst++;src++;n1++;//表示src走的步数}else{src++;n2++;//表示src走的步数,也是需要移除(==val)的元素个数}}return numsSize - n2;
}
2、数组下标访问实现
int removeElement(int* nums, int numsSize, int val) {int dst = 0, src = 0;int n = 0;while (src < numsSize){if (nums[src] != val){nums[dst] = nums[src];dst++;src++;}else{src++;n++;}}return numsSize - n;
}