原题:
解决方法:
Given a sorted array, remove the duplicates in-place such that each element appear only once and return the new length.
Do not allocate extra space for another array, you must do this by modifying the input arrayin-place with O(1) extra memory.
Example:
Given nums = [1,1,2], Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively. It doesn't matter what you leave beyond the new length.
解决方法:
在原来数组上进行修改,有一个变量指向不重复的位置,当找到不重复的数时,将新的数拷到不重复的位置上,同时新的不重复位置往后移动。
int removeDuplicates(vector<int>& nums) {
if (nums.empty())
return 0;
int res = 1;
for(int i = 1; i < nums.size(); i++){
if (nums[i] != nums[i-1]){
nums[res++] = nums[i];
}
}
return res;
}