Leetcode 80 刪除排序數組中的重複項 II 雙指針額外變量解耦

 

排序數組在原地上操作是典型的雙指針技巧,但這裏每個數能出現兩次,所以用一個額外變量來解除耦合。

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if(nums.size()==0) return 0;
        int i = 0, k=0;
        for(int j=1;j<nums.size();j++){
            if(nums[i]==nums[j]&&k==1) continue;
            else if(nums[i]==nums[j]&&k==0) {
                k++;
                nums[++i] = nums[j];
            }
            else {
                nums[++i] = nums[j];
                k = 0;
            }
        }
        return i+1;
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章