和之前的sorted list意思差不多,不过用array就比较不好想···
经candy提醒,应该用两个指针,一个指在前面,一个在后面比较,如果不一致,就移动指针,并且赋值。
注释中是用vector 函数做的一种简单的写法
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int tmp=0;
if(nums.size()==1) return 1;
for(int i=1;i<nums.size();i++){
if(nums[i]!=nums[i-1]) {
nums[tmp]=nums[i-1];
tmp++;
}
if(i==nums.size()-1){
nums[tmp]=nums[i];
tmp++;
}
}
return tmp;
// auto endPtr=unique(nums.begin(),nums.end()); //这里endPtr是给收尾begin,end去重后得到的迭代器(类似一个指针)
// return (endPtr-nums.begin()); //现在的排列关系是 begin endptr end,因此长度是endptr-begin的个数
}
};