您的位置:首页 > 其它

[LeetCode]26. Remove Duplicates from Sorted Array

2017-04-19 12:55 543 查看

[LeetCode]26. Remove Duplicates from Sorted Array

题目描述



思路

如果只要统计非重复元素的个数的话水题无疑

这道题要求在O(1)的空间复杂度内统计重复元素并且将原数组中的重复元素去掉

思路就是用没有出现过的元素覆盖掉重复出现过的元素,最后重置vector长度,将后面多的部分舍弃,详见代码

代码

#include <iostream>
#include <vector>

using namespace std;

class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if (nums.size() == 0)
return 0;
int res = 1;
for (int i = 1; i < nums.size(); ++i) {
while (i < nums.size() && nums[i] == nums[i - 1])
++i;
if (i == nums.size())
break;
nums[res++] = nums[i];
}
nums.resize(res);

return res;
}
};

int main() {
vector<int> nums = { 1, 1, 2, 2, 2 };
Solution s;
cout << s.removeDuplicates(nums) << endl;

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: