3.力扣c++刷题-->删除有序数组中的重复项

题目:给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

#include
#include
using namespace std;

class Solution
{
public:
    int removeDuplicates(vector<int>& nums)
    {
        for (auto itr = nums.begin(); itr != nums.end() - 1;) //注意是不等于倒数第二个,不然会越界
        {
            if (*itr == *(itr + 1))
            {
                itr = nums.erase(itr);
            }
            else
            {
                itr++;
            }
        }

        for (auto& itr : nums)
        {
            cout << itr << endl;
        }
        return nums.size();
    }
};
int main()
{
    vector<int> nums = {1,2,2,3,3,4};
    Solution a;
    a.removeDuplicates(nums);
    return 0;
}

你可能感兴趣的:(c++力扣刷题,leetcode,c++,算法)