文章目录
- 题目介绍
- 题解
题目介绍
题解
h指数不一定都满足citations[mid] == n - mid,例如[0,1,4,5,6]的h指数是3。
题目说了用对数时间复杂度来实现,说明一定是用二分法,草纸上推导一下即可得出以下代码。
class Solution {
public int hIndex(int[] citations) {
int l = 0, n = citations.length, r = n - 1,mid = 0;
while(l <= r){
mid = (l + r)/2;
if(citations[mid] == n - mid){
return n - mid;
}else if(citations[mid] > n - mid){
r = mid - 1;
}else{
l = mid + 1;
}
}
return n - l;
}
}