参考:
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();
}
};
怕什么真理无穷,进一寸有一寸的欢喜。---胡适
浙公网安备 33010602011771号