给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照 升序排列 。编写一个方法,计算出研究者的 h 指数。

h 指数的定义: “h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)总共有 h 篇论文分别被引用了至少 h 次。(其余的 N - h 篇论文每篇被引用次数不多于 h 次。)"

示例:

输入: citations = [0,1,3,5,6]
输出: 3
解释: 给定数组表示研究者总共有 5 篇论文,每篇论文相应的被引用了 0, 1, 3, 5, 6 次。
由于研究者有 3 篇论文每篇至少被引用了 3 次,其余两篇论文每篇被引用不多于 3 次,所以她的 h 指数是 3。

说明:

如果 h 有多有种可能的值 ,h 指数是其中最大的那个。

解题思路

因为 h 指数是指他(她)的 (N 篇论文中)总共有 h 篇论文分别被引用了至少 h 次

假设下标为i的论文,数组长度为n,那么该下标后面的n-i篇论文必将至少被引用了citations[i]次,所以我们可以假设h=n-i,那么只要citations[i]>=h,那么这就是一个满足题意的H指数。

因为只要i满足H指数的条件,那么i+n同样满足H指数的条件,只是H的值比i更小,因此通过二分法查找边界,找到刚好满足citations[i]>=h的下标i,这就是最大的H指数了。

代码

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

leetcode 275. H 指数 II相关推荐

  1. LeetCode 275. H指数 II(二分查找)

    1. 题目 给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列.编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数&q ...

  2. LeetCode 981. 基于时间的键值存储 / 274. H 指数 / 275. H 指数 II

    981. 基于时间的键值存储 2021.7.10 每日一题 题目描述 创建一个基于时间的键值存储类 TimeMap,它支持下面两个操作:1. set(string key, string value, ...

  3. 275. H 指数 II

    难度:中等 给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照 升序排列 .编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数 ...

  4. LeetCode 274. H指数(排序,哈希)

    1. 题目 给定一位研究者论文被引用次数的数组(被引用次数是非负整数).编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数"(high c ...

  5. 【数据结构与算法】之深入解析“H指数II”的求解思路与算法示例

    一.题目要求 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数,citations 已经按照升序排列,计算并返回该研究者的 h 指数. h ...

  6. leetcode275. H指数 II(二分法)

    给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列.编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数"(h ...

  7. 二分答案——H指数(Leetcode 274)

    题目选自Leetcode 274. H指数 二分查找(答案)的简单题~ 理解题意 这个例子有点儿特殊,论文被引用了 3 次,篇数有 3 篇.再来看一个更一般的例子: 结论: 这条分割线越靠左边,说明被 ...

  8. LeetCode Algorithm 274. H 指数

    274. H 指数 Ideas H指数表示的是有h篇论文被引用了至少h次. 我们可以将citations逆序排列,表示引用次数从高到底排列. 如果我们从前向后遍历数组,那么第i位上值v,就表示至少有i ...

  9. 重磅!全球Top 1000计算机科学家h指数公布:中国53位学者上榜!张宏江居大陆科学家之首...

    近日,Guide2Research刚刚出炉了2021年世界顶尖1000名计算机科学家排名.美国614名科学家实力霸榜.吴恩达.李飞飞等入选的华人学者过百.中国科学家53人上榜,张宏江居中国大陆科学家之 ...

最新文章

  1. EJB-Java服务器端构件模型使用入门(2)
  2. centos7 shell脚本自动优化yum firewalld xelinux
  3. 计算机考试题 实操,计算机考试实操题-20210604194811.docx-原创力文档
  4. 岭回归与Lasso回归
  5. Redis整合Spring结合使用缓存实例
  6. 第4件事 产品经理必须“入戏”, 与用户交朋友
  7. ajax alert表单,jQuery AJAX Post alert()不被调用
  8. 485光隔离中继器产品特点及应用领域介绍
  9. UVa10779 - Collectors Problem(最大流)
  10. mysql数据库表名批量改为小写,MySQL 批量修改表名
  11. python程序如何执行死刑_「Python基础知识」Python生成器函数
  12. 机器人电焊电流电压怎么调_机器人二保焊自动焊机是怎么调节的?
  13. 【CocosCreator 3.x】实现双人同屏效果 => 攻略
  14. Python入门到放弃
  15. cmd命令与dos命令
  16. 证券行业企业微信智慧办公解决方案
  17. 抢茅台脚本居然用的Python,我们Python真是太强大了---图拉夫
  18. python io
  19. 英语学习篇 - 英语阅读法
  20. 吉他弹唱精通——逆向思维玩套路

热门文章

  1. 【Linux基础】Linux的5种IO模型详解
  2. 处理大并发之二 对epoll的理解,epoll客户端服务端代码
  3. Java集合(三):Queue队列
  4. 文件描述符与打开文件的关系
  5. WinPcap笔记(4):打开适配器并捕获数据包
  6. 第九篇 并发(进程和线程)
  7. CRM公海自动回收规则
  8. AJAX, callback,promise and generator
  9. Android RecyclerView (一) 使用完全解析
  10. stand up meeting 12/21/2015