Leetcode從排序陣列中刪除重複項
阿新 • • 發佈:2019-01-05
介紹
給定一個有序陣列,刪除重複內容,使每個元素只出現一次,並返回新的長度。
不要為其他陣列分配額外的空間,您必須通過在 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;
}