Remove Duplicates from Sorted Array的C++解法(unique去重)

参考:

https://blog.csdn.net/musechipin/article/details/85273856

题目描述:https://leetcode.com/problems/remove-duplicates-from-sorted-array/

class Solution{
public:
    int removeDuplicates(vector<int>& nums){
        if(nums.size() == 0 || nums.size() == 1) return nums.size();
        int i = 1;
        while(i<nums.size()){
            if(nums[i] == nums[i-1]) nums.erase(nums.begin() + i);
            else
                i++;
        }
        return nums.size();
    }
};

//better solution :unique函数更快
/**
 * @brief unique()函数去掉的是相邻的重复数,只保留一个,使用前最好先排序,
 * unique()并没有把重复的元素删掉,只是把重复的元素放到最后了,因此配合
 * erase()可以彻底删除元素;
 */
class Soluton{
public:
    int removeDuplicates(vector<int>& nums){
        nums.erase(unique(nums.begin(),nums.end()),nums.end);
        return nums.size();
    }
};

  

怕什么真理无穷,进一寸有一寸的欢喜。---胡适
原文地址:https://www.cnblogs.com/hujianglang/p/12462467.html