题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内,找出数组中任意一个重复的数字。
测试代码:
public static void main(String[] args) {
int [] numbers ={0,1,2,2,3,4,5};
int [] duplication = new int[10];
int duplicate = duplicate(numbers, duplication);
System.out.println("duplicate is = "+duplicate);
}
public static int duplicate(int [] numbers,int [] duplication) {
if(numbers.length == 0){
return -1;
}
for(int i=0; i<numbers.length; i++){
if(numbers[i]<0 || numbers[i]>=numbers.length){
return -1;
}
}
for(int j=0; j<numbers.length; j++){
while(numbers[j] != j){
if(numbers[j]==numbers[numbers[j]]){
duplication[0] = numbers[j];
return duplication[0];
}
int temp = numbers[j];
numbers[j]=numbers[temp];
numbers[temp]=temp;
}
}
return -1;
}