給定一個排序數組,在原數組中「刪除」重複出現的數字,使得每一個元素只出現一次,而且返回「新」數組的長度。數組
不要使用額外的數組空間,必須在不使用額外空間的條件下原地完成。bash
樣例 1:
輸入: [] 輸出: 0ui
樣例 2:
輸入: [1,1,2] 輸出: 2 解釋: 數字只出現一次的數組爲: [1,2]spa
因爲有序,因此相同的數字排在一塊兒。code
用一個遊標變量指向已經去重的部分的下一個空位,只要a[i] != a[i-1]a[i]!=a[i−1],就將a[i]填入以前的空位。cdn
遍歷一次數組,將不重複元素保留,重複元素被覆蓋,最後刪除末尾剩餘的元素便可。blog
public class Solution {
public int removeDuplicates(int[] A) {
if (A == null || A.length == 0) {
return 0;
}
int size = 0;
for (int i = 0; i < A.length; i++) {
if (A[i] != A[size]) {
A[++size] = A[i];
}
}
return size + 1;
}
}複製代碼
點擊LintCode進行在線評測排序