问题描述
给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,
并且返回新的数组的长度。
不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。
样例
给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]
求解
class Solution {
public:
int removeDuplicates(vector<int> &nums) {
if (nums.empty()) {
return 0;
}
int left = 0;
int right = 1;
while (right < nums.size()) {
if (nums[left] != nums[right]) {
++left;
nums[left] = nums[right];
}
++right;
}
return left + 1;
}
};