题目如下:
思路: 双指针,开始时left指向首元素,right指向下一个元素。当left对应元素与right对应元素相同时,向后移动right;当不相同时,先往后移动left,再把right所指元素赋值给left所指元素。
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int left = 0,right = 1;
while(right < nums.size()){
if(nums[right] == nums[left]){
right ++;
}
else{
left ++;
nums[left] = nums[right];
}
}
return left + 1;
}
};