C++
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
//双重遍历 找到重复就删除
for(vector<int>::iterator it=nums.begin();it!=nums.end();it++){
for(vector<int>::iterator its=it+1;its!=nums.end();){
if(*it==*its){
its=nums.erase(its);
}
else{
its++;
}
}
}
return nums.size();
}
};
Java
class Solution {
public int removeDuplicates(int[] nums) {
//双指针
//当有重复的时候 一个指针指向重复数据的第二个(slow)另一个指针(fast)去找不重复的数据来覆盖重复数据的第二个数据
//总结当找到不重复数据就覆盖,找到重复数据就让fast继续去找
int fast=1,slow=1;
int n=nums.length;
while(fast<n)
{
if(nums[fast]==nums[fast-1]){
fast++;
}
else{
nums[slow]=nums[fast];
slow++;
fast++;
}
}
return slow;
}
}