题目描述:
The h-index of an author is the largest h where he has at least h papers with citations not less than h.
Bobo has published many papers. Given a0,a1,a2,…,an which means Bobo has published ai papers with citations exactly i, find the h-index of Bobo.
输入:
The input consists of several test cases and is terminated by end-of-file. The first line of each test case contains an integer n. The second line contains (n+1) integers a0,a1,…,an.
* 1≤n≤2*105
* 0≤ai≤109
* The sum of n does not exceed 250,000.
输出:
For each test case, print an integer which denotes the result.
样例输入:
1
1 2
2
1 2 3
3
0 0 0 0
样例输出:
1
2
0
思路:从大到小枚举h,主要是理解题目,要求至少有h篇 引文不低于h 的论文
如:
3
1 2 1 2
引用数0的有1篇,引用数1的有2篇,引用数2的有1篇,引用数3的有2篇,输出应该为2(有3(>=2)篇引用数不低于2)
因此,从后往前累加即可
import java.util.Scanner;
public class A {
public static void main(String[] args) {
Scanner rd = new Scanner(System.in);
while (rd.hasNext()) {
int n = rd.nextInt();
int sum = 0;
int[] a = new int[n + 1];
for (int i = 0; i < a.length; i++) {
a[i] = rd.nextInt();
}
for (int i = a.length - 1; i >= 0; i--) {
sum += a[i];
if (sum >= i) {
System.out.println(i);
break;
}
}
}
}
}