【每日一题Day362】LC274H 指数 | 二分答案

简介: 【每日一题Day362】LC274H 指数 | 二分答案

H 指数【LC274】

给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数

根据维基百科h 指数的定义h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发表了 h 篇论文,并且每篇论文 至少 被引用 h 次。如果 h 有多种可能的值,h 指数 是其中最大的那个。


来晚了 奔波的一天

  • 思路
  • 二段性:存在最大值y使,少于等于y的数值一定满足条件;大于y的数值一定不满足条件
  • 二分答案y
  • 引用次数大于等于y的论文数目大于等于y,那么向右搜索获得更大的y
  • 引用次数大于等于y的论文数目小于y,那么向左搜索获得更大的y
  • check:排序后可以快速算出引用次数大于等于y的论文数目
  • 实现
class Solution {
    public int hIndex(int[] citations) {
        int n = citations.length;
        Arrays.sort(citations);
        int l = 1, r = n;
        int res = 0;
        while (l <= r){
            int mid =(l + r) >> 1;
            if (check(citations, mid) >= mid){
                res = Math.max(res, mid);
                l = mid + 1;            
            }else{
                 r = mid - 1;
            }
        }
        return res;
    }
    public int check(int[] citations, int target){
        int n = citations.length;
        int l = 0, r = n - 1;
        while (l <= r){
            int mid = l + r >> 1;
            if (citations[mid] < target){
                l = mid + 1;
            }else{
                r = mid - 1;
            }
        }
        // l为第一个符合的下标
        return n - l;// 大于等于target的引用次数的数目
    }
}

image.png

目录
相关文章
|
定位技术 开发工具 Android开发
Leaflet开发入门
Leaflet开发入门
533 0
|
测试技术 开发工具 数据库
《Git 简易速速上手小册》第4章:Git 与团队合作(2024 最新版)
《Git 简易速速上手小册》第4章:Git 与团队合作(2024 最新版)
135 1
|
存储 监控 关系型数据库
rds迁移前准备资源评估与配置
rds迁移前准备资源评估与配置
175 5
|
8月前
|
运维 监控 NoSQL
客户说|莉莉丝《剑与远征:启程》引入阿里云MongoDB,助力游戏高效开发
客户说|莉莉丝《剑与远征:启程》引入阿里云MongoDB,助力游戏高效开发
388 1
|
存储 监控 算法
go语言并发实战——日志收集系统(四) 利用tail包实现对日志文件的实时监控
go语言并发实战——日志收集系统(四) 利用tail包实现对日志文件的实时监控
418 0
|
JSON 前端开发 Java
|
存储 Java Android开发
2022最新手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)教程
2022最新手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)教程
2469 0
2022最新手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)教程
|
SpringCloudAlibaba Java 程序员
卷起来了!阿里最新出品“微服务全阶笔记”,涵盖微服务全部操作
近两年,“大厂裁员”总是凭实力冲上各大媒体头条,身在局中的我们早已习以为常。国内的京东,阿里,腾讯,字节,快手,小米等互联网公司都以不同程度的裁员比例向社会输送人才。大量有大厂经验的卷王涌入招聘市场,更多的人去竞争更少的岗位,这也间接的抬高了现在Java市场招聘的需求。
|
算法
java202303java学习笔记第三十天五道经典算法题1
java202303java学习笔记第三十天五道经典算法题1
84 0
|
算法
数据结构与算法(八)贪心算法
数据结构与算法(八)贪心算法
157 0