先從 26 開始(26 是保留一位 => 延伸保留 k 位,再來寫這題)
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
return f(nums, 2);
}
int f(vector<int>& nums, int k){
if (nums.size() <= k) return nums.size();
int left = k - 1;
for(int right=k;right<nums.size();right++){
if(nums[right]!=nums[left-k+1]){
left++; // 我是要先往後一個,而不是覆蓋掉nums[left]本身
nums[left]=nums[right];
}
}
return left+1;
}
};