您的位置:首页 > 其它

LeetCode 26 Remove Duplicates from Sorted Array(从已排序数组中移除重复元素)

2016-12-04 19:41 706 查看
给定一个已排序的数组,删除重复的元素,这样每个元素只出现一次,并且返回新的数组长度。

不允许为另一个数组使用额外的空间,你必须就地以常量空间执行这个操作。

例如,

给定输入数组为 [1,1,2]

你的函数应该返回length = 2, 其前两个元素分别是1和2。它不关心你离开后的新长度。

class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if (nums.begin() == nums.end()) return 0;
vector<int>::iterator itor;
for (itor = nums.begin(); itor != nums.end() && itor + 1 != nums.end(); ++itor) {
while (*itor == *(itor + 1)) {
nums.erase(itor + 1);
if (itor + 1 == nums.end())
break;
}
}
return nums.size();
}
};


这里注意,迭代器中itor++和itor+1是不一样的,itor++包括了加一和赋值操作,相当于itor = itor +1,这样会改变迭代器所指的元素
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐