解题思路
因为数字本身就是排序的,所以直接遍历数组然后然后记录一个没有重复的数组的下标。本题和LeetCode27题比较像。
代码
int removeDuplicates(vector<int>& nums) {
int cur=0;//记录下当前的数组的前cur个数字没有重复,遇到没有重复加一。
for(int i=0;i<nums.size();i++){
if(i>0&&nums[i]==nums[i-1]){
continue;
}
else{
nums[cur]=nums[i];//这里cur永远不可能大于i
cur++;
}
}
return cur;//因为在else中cur++,在最后一个元素的时候也//执行++,所以最后不是返回cur+1;
}