26、Remove Duplicates from Sorted Array
删除排序数组中的重复数字
给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。
不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。
样例
给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]。
分析:
因为是排序数组,所以我们只需要判断每一个元素是否大于他的前一个元素,就能知道他是否重复,然后将每一个不重复在数组前重新填充即可。
代码:
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size()<2)return nums.size();
int count=1;
for(int i=1;i<nums.size();i++)
if(nums[i]>nums[i-1])//判断是否重复
nums[count++]=nums[i];//在数组前重新填充
return count;
}
};