每日一题 LeetCode 275. H 指数 II java题解

题目

https://leetcode-cn.com/problems/h-index-ii/
每日一题 LeetCode 275. H 指数 II java题解_第1张图片

代码

当citations[a]>=n-a时,就找到了一个H指数。我们要找的是最大的H指数。
二分查找

class Solution {
    public int hIndex(int[] citations) {
        int len=citations.length;
        int left=0;
        int right=len-1;
        int mid=(right-left)/2+left;
        //左边界二分查找
        //因为要找最大的len-left
        //所以找最小的left
        while(left<=right){
            mid=(right-left)/2+left;
            if(citations[mid]>=len-mid){//
                right=mid-1;//左移,缩小
            }
            else{
                left=mid+1;
            }
        }
        return len-left;//论文被引用的次数
    }
}

复杂度

在这里插入图片描述

你可能感兴趣的:(LeetCode,leetcode,算法,二分查找)