思路:
- 因为不清楚数组内部的实际情况,所以需要分类判断
1.1 数组为空
1.2 数组有一个元素,但此元素需要移除
1.3 数组有一个元素,此元素不需要移除
1.4 一般情况 - 对于一般情况,这里借鉴了 数组排序的冒泡法。通过前后元素的对比,逐渐将所需要移除的元素向数组尾部移动。
- 最后,通过测算尾部需要删除的元素的个数,与数组大小相减所得的值,就是保留元素的长度(即返回值)
int removeElement(vector<int>& nums, int val) {
if(nums.empty()==true)
return 0;
if(nums.size()==1&&nums[0]==val)
return 0;
if(nums.size()==1&&nums[0]!=val)
return 1;
for(int i=0;i<nums.size();i++)
{
for(int j=i+1;j<nums.size();j++)
{
if(nums[i]==val&&nums[j]!=val)
{
int a;
a=nums[i];
nums[i]=nums[j];
nums[j]=a;
j++;
break;
}
}
}
int t=0;
for(int x=nums.size()-1;nums[x]==val;x--)
{
t++;
if(x==0)
break;
}
int k=nums.size()-t;
return k;
}