对于此题,背诵就够了。
不过要明白的是,n-index得到的是大于等于这个index的数量,即在数组中,大于等于citation[i](含自己)的数量。
最后返回n-min。
常用0,1,3,5,6,7,8作例子吧
public class Solution {
public int hIndex(int[] citations) {
int n = citations.length;
if (n == 0) {
return 0;
}
int min = 0, max = citations.length - 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;
}
}