class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int len=nums.size();
int i,j,k=0;
nums[k++]=nums[0];
for(i=0,j=i+1;i<len-1&&j<len;){
if(nums[i]!=nums[j]){
i=j;
nums[k++]=nums[i];
j++;
}
else{
j++;
}
}
return k;
}
};
解题思路:从i=0,j=i+1开始,依次向后比较,当nums[i]!=nums[j]时,用K记录当前元素,i=j,j++依次向后递增;当nums[i]== nums[j]时,j的下标向后移动。
注意:i,j 的下标范围,容易出现数组访问下标溢出。