目录
题目链接
图解思路
常规情况
特殊情况
实现代码
int removeElement(int* nums, int numsSize, int val)
{
int left = 0;
int right = numsSize;
while(left < right)
{
if(val == nums[left])
{
nums[left] = nums[right - 1];
--right;
}
else ++left;
}
return left;
}
错误代码
没有考虑要删到空的情况
int removeElement(int* nums, int numsSize, int val)
{
if(0 == numsSize) return 0;
int left = 0;
int right = numsSize - 1;
while(left < right)
{
if(val == nums[left])
{
nums[left] = nums[right];
--right;
}
else ++left;
}
return left + 1;
}