# 26 - Remove Duplicates from Sorted Array

解法一 - Two pointer

我們可以用 size 來控制目前沒有重複的 element 有幾個,只有在遇到不重複 element 時,才會增加 size,並把最新的 element 放到 size 的位置。

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int size=0;
        if(nums.empty()) return size;

        for(int i=0; i<nums.size(); i++) {
            if(nums[size] != nums[i]) 
                nums[++size] = nums[i];
        }

        // Note size+1
        return size+1;
    }
};

最後要注意的地方是,我們需要回傳 size+1,可以想像如果今天只有一個 element,那就不會做任何事而結束,所以需要回傳 size+1。又或者是可以想成因為 index 從 0 開始,而 size 原本是指向 index,所以我們要回傳 array 長度的話就要將 size+1。

Last updated