class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int n=0;
int x;
for(vector<int>::iterator it=nums.begin();it!=nums.end();it++)
{
if(x!=*it)
{
x=*it;
n++;
}
else
{
--it;
nums.erase(it);
}
}
return n;
}
};
这道题的思路来的特别快,花费的时间主要在迭代器的使用不熟练,所以这次做的还算顺利,但是结果似乎不太好。
这用时实在是有点大,不知道是不是因为用了迭代器。
看到其他人的解法,看着比较巧妙。
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if (nums.size() < 2) return nums.size();
int j = 0;
for (int i = 1; i < nums.size(); i++)
if (nums[j] != nums[i]) nums[++j] = nums[i];
return ++j;
}
};
速度快太多了。
加油吧。