![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8128247a77be7f6864d5fdee476aceea.png)
- 代码1,妙啊~
还是用index和i两个变量去比较, 因为是已排好序的数组,如果第三个元素与第一个元素相等,就说明有三个重复了。所以,从第三个元素开始比较i和index都初始化为2,然后下标为2的元素与下标为0的元素比较,如果两者不同,那么i和index都往后+1,如果相同就index不变,i一直往后,直到找到与下标为index-1元素不同的,然后去替换它。
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size()<=2) return nums.size();
int index=2;
for(int i=2;i<nums.size();i++){
if(nums[i]!=nums[index-2]){
nums[index++]=nums[i];
}
}
return index;
}
};
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size()<=2) return nums.size();
int index=2;
for(int i=2;i<nums.size();i++){
if(nums[i]!=nums[index-2]){
nums[index++]=nums[i];
}
}
return index;
}
};