和I一样的思路,区别仅仅在于当A[end-1] = A[end] = A[i]时,A[i]为重复元素需跳过。而实际只需要比较A[end-1]和A[i],因为当A[end-1] = A[i]时,根据sorted arry特性必然也有A[end]=A[end-1]。
class Solution {
public:
/**
* @param A: a list of integers
* @return : return an integer
*/
int removeDuplicates(vector<int> &nums) {
// write your code here
if(nums.size()<3) return nums.size();
int end = 1;
for(int i=2; i<nums.size(); i++) {
if(nums[i]!=nums[end-1]) {
end++;
nums[end] = nums[i];
}
}
return end+1;
}
};