1. 程式人生 > >Java程式碼實現刪除一個有序數組裡面的重複元素

Java程式碼實現刪除一個有序數組裡面的重複元素

放鬆了這麼多天,終於把部落格重新撿起來了,以後保持每天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;
}
}