[LeetCode]26. Remove Duplicates from Sorted Array

来源:互联网 发布:淘宝老客户刷销量 编辑:程序博客网 时间:2024/06/16 17:10

[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;}
0 0
原创粉丝点击