public class RepeatNumber {
public static boolean duplicate(int nums[],int []duplication){
if(nums==null||nums.length==0){
return false;
}
for(int i=0;i<nums.length;i++){
while(nums[i]!=i){ //当前数组下标和当前数组的数字不相等的话
if(nums[i]==nums[nums[i]]){//当前i下标和nums[i]下标在数组中做一次对比,相等就表示重复了
duplication[0]=nums[i];
return true;
}
//这里刚刚开始是起到排序的作用,不停的交换i和nums[i]不相等的情况,nums[i]和nums[nums[i]]交换
int temp=nums[i];
nums[i]=nums[temp];
nums[temp]=temp;
}
}
return false;
}
public static void main(String[]args){
int nums[]={0,3,2,1,2};//因为是从0开始,记得要加0,不然上面for循环会一直停在0不走了
int a[]=new int[5];
boolean b=RepeatNumber.duplicate(nums,a);
System.out.println(b);
}
}
数组中重复的数字
最新推荐文章于 2022-10-28 15:46:43 发布