class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int i=nums.size();//读取nums长度
int slow=0;//利用slow存储我们最终想要的数组
for(int n=1;n<i;n++)//遍历数组
{
if(nums[n-1]!=nums[n])//判断前后两数不同时将前数存入slow中,后slow后移
{
nums[slow]=nums[n-1];
slow++;
}
}
if(slow==0)//排除出现全是同个数的情况
{
slow=1;
}
if(i!=1)
{
if(nums[i-2]!=nums[i-1])//存入最后数
{
nums[slow]=nums[i-1];
return slow+1;
}
if(nums[i-2]==nums[i-1]&&nums[slow-1]!=nums[i-1])//排除全是同个数和最后全是同个数不同
{
nums[slow]=nums[i-1];
return slow+1;
}
return slow;
}
else return slow;
}
};
纯自己写的无算法基础,仅供参考。