一种思路:弄一个新的数组,让对应位置放对应的值,如果再想放的时候,发现对应位置已经有了对应的值,就说明重复了。
public class Solution {
// 这里要特别注意~返回任意重复的一个,赋值duplication[0]
public boolean duplicate(int numbers[],int length,int [] duplication) {
if(numbers==null || length<=1){
return false;
}
for(int i =0;i<length;i++){
while(numbers[i] != i){
if(numbers[i] == numbers[numbers[i]]){
duplication[0]= numbers[i];
return true;
}
swap(numbers,i,numbers[i]);
}
}
return false;
}
public void swap(int numbers[],int i,int j){
int temp = numbers[i];
numbers[i]=numbers[j];
numbers[j]=temp;
}
}