Java程式碼實現刪除一個有序數組裡面的重複元素
阿新 • • 發佈:2019-01-04
放鬆了這麼多天,終於把部落格重新撿起來了,以後保持每天3更,加油加油!
這次實現的演算法是刪除一個有序數組裡面的重複元素
思路:一個數組是有序的,所以演算法實現起來相對比較簡單,因為只需比較陣列相鄰的兩個數字即可,存在兩種情況
1:如果數組裡面不存在元素或者只存在一個元素,那麼就不需要進行比較,直接返回陣列的長度即可;
2:陣列長度大於一的話那麼就需要比較陣列的相鄰的兩個元素,如果相等 的話那麼後一個元素的指標往後移一位,然後前一個元素的指標接著往後移一位,將當前後一個元素指標所指的數字賦給前一個元素指標所指的位置,然後後一元素指標繼續加一。如果相鄰倆個元素不等的話,則直接前一元素指標加一與後一元素重合,然後後一元素指標繼續加一。
程式碼如下:
public class Solution {
public int removeDuplicates(int[] A) {
int i=0;
int j=1;
if(A.length==0||A.length==1){
return A.length;
}
while(i<A.length&&j<A.length){
if(A[i]==A[j]){
j++;
}else{
A[++i]=A[j++];
}
}
return i+1;
}
}