public class Solution {
public int hIndex(int[] citations) {
int n = citations.length;
if (n == 0) {
return 0;
}
int min = 0, max = n - 1;
while (min <= max) {
int mid = min + (max - min)/2;
if (citations[mid] >= n - mid) {
max = mid - 1;
} else {
min = mid + 1;
}
}
return n - min;
}
}