刪除有序數組中的重復項 II
- 思路

class Solution {
public:int removeDuplicates(vector<int>& nums) {if(nums.size()<=2){return nums.size();}int index =2;for (int i = 2; i < nums.size();i++ ) {if(nums[i] != nums[index-2]) {nums[index++]=nums[i];}}return index;}
};
思路
- 雙指針分工
index指針:表示"新數組"的當前位置(下一個寫入位置)
i指針:掃描原數組的當前位置
- 關鍵比較 nums[i] != nums[index-2]
比較對象:當前元素 vs 新數組中倒數第二個元素
為什么是index-2?
因為我們要確保任意元素最多出現兩次
比較新數組中當前位置的前兩個元素,就能判斷當前元素是否已經出現兩次