在編程中經常會遇到,需要刪除數組中的重複元素的問題,現在已經有很多人實現了。但是目前已經實現的算法中,有的需要多次創建數組,有的寫的很複雜。經過思考和時間,寫出了一個最爲高效的算法,不需要多次創建數組,算法也很簡單,代碼如下:
/**
* 去掉數組中重複的元素
* @param coords
* @return
*/
public static int[] distinct(int[] arr){
int length=1;
boolean isExist=false;
for(int i=1;i<arr.length;i++){
for(int j=0;j<length;j++){
if(arr[i]==arr[j]){
isExist=true;
break;
}
}
if(!isExist){
arr[length]=arr[i];
length++;
}
isExist=false;
}
int[] newArr=new int[length];
System.arraycopy(arr, 0, newArr, 0, length);
return newArr;
}