题目:
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
题目链接:Remove Duplicates from Sorted Array
C++:
双指针
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int lens = nums.size();
if(lens == 0 || lens == 1)
return lens;
int ret = 1;
for(auto itr1 = nums.begin(), itr2 = nums.begin() + 1; itr2 != nums.end(); itr2++){
if(*itr1 != *itr2){
*(itr1 + 1) = *itr2;
itr1++;
ret++;
}
}
return ret;
}
};