目录
题目叙述
题解
一、暴力法
要注意的点是在移除元素时的 i-- 和 numsSize-- 操作
int removeElement(int* nums, int numsSize, int val){
for(int i=0;i<numsSize;i++)
{
if(nums[i] == val)
{
for(int j=i+1;j<numsSize;j++)
{
nums[j-1]=nums[j];
}
i--;
numsSize--; //一个元素被覆盖后,数组的大小减一
}
}
return numsSize;
}
二、双指针
设置 slow 和 fast 两个指针,fast 用来实现 for 循环遍历数组元素,slow 用来记录要保存的元素
int removeElement(int* nums, int numsSize, int val)
{
int slow=0;
for(int fast=0; fast<numsSize; fast++)
{
if(nums[fast] != val)
{
nums[slow]=nums[fast];
slow;
}
}
return slow;
}
提交结果(双指针法)