- 实例要求:
- 给定一个
数组 nums
和一个值 val
,需要原地
移除
所有数值等于 val 的元素
,并返回移除后数组的新长度
; 不要使用额外的数组空间
,必须仅使用 O(1) 额外空间
并原地 修改输入数组
;元素的顺序
可以改变,不需要考虑
数组中超出新长度后面的元素
;- 实例分析:
- 1、
for循环
遍历数组nums
; - 2、
if条件判断
数组中的元素
是否与值 val
相等; - 3、若相等,则被
该数组元素
被其后一个数组元素
替换,若不相等,则跳过
,依此类推; - 示例代码:
int removeElement(int* nums, int numsSize, int val)
{
int newSize = 0;
for(int i = 0; i < numsSize; ++i)
{
if(nums[i] != val)
{
nums[newSize] = nums[i];
newSize++;
}
}
return newSize;
}