版权声明:本文为博主编写文章,未经博主允许转载,转载请注明出处: https://blog.csdn.net/qq_39742013/article/details/83099293
自己写的:
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size()==0)
return 0;
int curInsert=1;
for(;curInsert<nums.size();curInsert++)
if(nums[curInsert]==nums[curInsert-1])
break;
if(curInsert==nums.size()+1)
return nums.size();
int curVisit=curInsert+1;
for(;curVisit<nums.size();)
{
if(nums[curVisit]!=nums[curVisit-1])
{
nums[curInsert]=nums[curVisit];
curInsert++;
}
curVisit++;
}
return curInsert;
}
};
参考了比较简洁的代码
if(nums.size()==0)
return 0;
int curPosition=0;
int curVisit=0;
int size=nums.size();
for(;curVisit<size;curVisit++)
{
if(nums[curPosition]!=nums[curVisit])
{
nums[++curPosition]=nums[curVisit];
}
}
return curPosition+1;
: