public class text {//最小可用id
public static void main(String[] args) {
int a[]=random(50,52);
System.out.println(Arrays.toString(a));
Arrays.sort(a);
System.out.println(Arrays.toString(a));
System.out.println(minid(a));
}
public static int minid(int[]a) {
int x=0;
while(x<a.length) {
if(x+1!=a[x])
return x+1;
else {
x++;}
}
return x+1;
}
public static int[] random(int len,int max){//生成指定长度,指定最大值的数组
int[]a=new int[len];
int index=0;
Random r=new Random();
while(index<len) {
int w=r.nextInt(max+1);
if(!you(a,w)) {
a[index]=w;
index++;
}
}
return a;
}
public static boolean you(int a[],int temp) {//判断数组a中有没有数字temp
for (int i = 0; i < a.length; i++) {
if(a[i]==temp) {
return true;
}
}
return false;
}
}
minid方法实现思想:
public static int minid(int[]a) {
int x=0;
while(x<a.length) {
if(x+1!=a[x])
return x+1;
else {
x++;}
}
return x+1;
}
既然已经知道数组是从1开始到x,那么我们就冲1开始找,
首先定义x=0,在x小于数组长度的前提下一直执行以下代码:
判断x+1==a【x】(0+1=1、1+1=2……)
如果不等于就返回x+1的数值