1060 爱丁顿数java答案和易错点分析
这里易错的地方在于,超过N英里的天数不一定是N,只要大于N就行,如果设置为等于N,对于(5) 10 10 10 10 5这种就会没有答案
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int N=Integer.parseInt(br.readLine());
String[] strs=br.readLine().split(" ");
int[] datas=new int[N];
for(int i=0;i<N;i++) {
datas[i]=Integer.parseInt(strs[i]);
}
Arrays.sort(datas);
int E=0;
for(int i=N;i>=0;i--) {
int count=0;//超过N英里的天数
for(int j=datas.length-1;j>=0;j--) {
if(datas[j]>i) {
count++;
}else {
break;
}
}
if(count>=i) {
E=i;
break;
}
}
System.out.print(E);
}
}