欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OJ ------ LeetCode 26 : 删除排序数组中的重复项

程序员文章站 2022-06-11 10:35:04
...

OJ ------ LeetCode 26 : 删除排序数组中的重复项

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if (nums.size() == 1)
            return 1;

        //排序好的数组, 只需要查找到相同的区间, 然后删除区间,留下一个元素即可
        vector<int>::iterator it = nums.begin();
        vector<int>::iterator end = it;
        while (it != nums.end()) {
            //循环结束时end指向第一个不同的数字, 因为删除是左闭右开区间
            while (end != nums.end() && *it == *end)
                end++;
            it = nums.erase(it + 1, end);
            //删除完成后it指向的是第一个不同的数字
            //更新end
            end = it;
        }

        return nums.size();
    }
};
相关标签: OJ题目