您的位置:首页 > 其它

LeetCode 26 - Remove Duplicates from Sorted Array

2015-05-24 10:27 465 查看

一、问题描述


Description:

Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.

For example:

Given input array 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.

Note:

Do not allocate extra space for another array, you must do this in place with constant memory.



给一个有序数组,原地移除重复的元素,并返回新数组的长度。

注意:只能原地工作,不能使用额外的数组。

二、解题报告

由于输入的是有序数组,在遍历过程中,我们只需要判断是否与前面的重复即可。

代码:

class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.empty())
return 0;
int count = 1;
int pre = nums[0];
vector<int>::iterator beg = nums.begin();
for(++beg; beg!=nums.end(); ) {   // 从第二个开始
if(*beg == pre)               // 重复,移除
beg = nums.erase(beg);
else                          // 不重复,更新pre
{
pre = *beg;
++beg;
}
}
return nums.size();
}
};


LeetCode答案源代码:https://github.com/SongLee24/LeetCode
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: