class Solution {
public:
int work(vector<int>& nums, int k) {
int len = 0;
for(int num : nums)
if(len < k || nums[len-k] != num)
nums[len++] = num;
return len;
}
int removeDuplicates(vector<int>& nums) {
return work(nums, 2);
}
};
len表示要填入的索引,在遍历nums的过程中,判断是否符合条件,如果符合条件再填入到nums中覆盖原有元素。
条件就是:要填入的位置前面第k个元素,是否跟将要填入的元素相同,如果相同,则跳过现在这个要填入的元素。