1. 程式人生 > >Leetcode從排序陣列中刪除重複項

Leetcode從排序陣列中刪除重複項

介紹
給定一個有序陣列,刪除重複內容,使每個元素只出現一次,並返回新的長度。
不要為其他陣列分配額外的空間,您必須通過在 O(1)額外的記憶體中就地修改輸入陣列來實現這一點。

例:
給定nums = [1,1,2],你的函式應該返回length = 2,前兩個nums元素分別是1和2。無論你離開新的長度,都沒有關係。

思路

採用兩個標記點 number 和 i ,number記錄不重複元素的位置,i從number的下一個開始遍歷陣列,如果i位置的數字等於number位置的數字,說明該數字重複出現,不予處理;如果i位置的數字不等於number位置的數字,說明該數字沒有重複,需要放到l的下一位置,並使number加1。

 public int removeDuplicates(int[] nums) {  
        if (nums.length == 0)  
            return 0;  
        //判斷無輸入  
        int number = 0;//標記計數  
        for (int i=0; i < nums.length ; i++) {  
            if ( nums[i] != nums[number] ) {  
                number++;  
                nums[number
] = nums[i]; } } number+=1; //標記+1即為數字個數 return number; }