在编程中经常会遇到,需要删除数组中的重复元素的问题,现在已经有很多人实现了。但是目前已经实现的算法中,有的需要多次创建数组,有的写的很复杂。经过思考和时间,写出了一个最为高效的算法,不需要多次创建数组,算法也很简单,代码如下:
/**
* 去掉数组中重复的元素
* @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;
}