26 Remove Duplicates from Sorted Array

這題的概念是要算出nums裡的所有不重複的數字有幾個(下面程式碼裡的count),並把array的前count個數字變成不重複的這count個數字。

舉例來說,如果有個例子是[1,1,1,2],我們的目標是要把回傳2,並把前兩個數字變成[1,2],所以做法就是利用count來計算總共有幾個不重複的數字,然後用ptr指向目前count應該要對應到的index。例如count一開始是1,ptr一開始指向index 1,直到走到2的時候,才會再把count加成2,並把nums[ptr]的1變2,程式就做完了。

public class Solution {
    public int removeDuplicates(int[] nums) {
        int count = 1;
        int ptr = 1;
        for(int i=1; i<nums.length; i++){
            if(nums[i]!=nums[i-1]){
                count++;
                nums[ptr] = nums[i];
                ptr++;
            }
        }
        return count;
    }

}

results matching ""

    No results matching ""