数组中重复的数字
问题
一个长度为n的数组,值得范围在0~n-1内,有一个或多个数字重复,求其中任意一个重复的数字(后续可能会求所有重复的数字,那么就是返回一个数组)。
方法
暴力求解,时间复杂度o(n^2),空间复杂度o(1)
代码
public class DuplicationInArray {
public static int getDuplication(int[] data){
if(data.length<2)
return -1;
for(int i=0;i<data.length-1;i++){
for(int j=i+1;j<data.length;j++){
if(data[i]==data[j])
return data[i];
}
}
return -1;
}
public static void main(String[] args){
int[] data1 = {2,3,1,0,3,5,2,4};
System.out.println(getDuplication(data1));
int[] data2 = {2,3,1,0,4,5,5};
System.out.println(getDuplication(data2));
}
}
输出
2
5
后续继续补充别的存储方式的解法。