当前位置: 首页 > news >正文

【LeetCode】274. H 指数

274. H 指数

题目

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

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

示例

示例 1:

输入:citations = [3,0,6,1,5]

输出:3

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

示例 2:

输入:citations = [1,3,1]

输出:1

解法

解法一:遍历所有可能性

public int hIndex(int[] citations) {if (citations == null || citations.length <= 0)return 0;int count = 0;for (int h = 1; h <= citations.length; h++) {count = 0;for (int i = 0; i < citations.length; i++) {if (citations[i] >= h) {count++;}}if (count < h) {return h - 1;}}return count;
}

时间复杂度:O(n^2)
空间复杂度:O(1)

解法二

二分搜索

public int hIndex(int[] citations) {if (citations == null || citations.length <= 0)return 0;int left = 0, right = citations.length;int mid = 0, cnt = 0;while (left < right) {mid = (left + right + 1) >> 1;cnt = 0;for (int i = 0; i < citations.length; i++) {if (citations[i] >= mid) {cnt++;}}if (cnt >= mid) {// 要找的答案在 [mid,right] 区间内left = mid;} else {// 要找的答案在 [0,mid) 区间内right = mid - 1;}}return left;
}
http://www.rkmt.cn/news/19584.html

相关文章:

  • python之多态
  • 取证复刻1
  • linux环境(ubuntu)安装mysql8详细教程
  • MySQL非root安装-初始化数据库时unknown variable ‘defaults-file=**/my.cnf‘
  • 英语_阅读_Fireflies_待读
  • ASP.NET Razor VB 变量 - 实践
  • 深入解析:【Day 66】Linux-Zabbix监控
  • ST表学习笔记
  • 谈一类易实现的非四毛子线性 RMQ
  • 我们学会在具体情境中做出恰当判断
  • 分布式结构化存储系统-HBase访问方式
  • 【Azure APIM】自建网关(self-host gateway)收集请求的Header和Body内容到日志中的办法
  • 冬天快乐
  • pycharm跑python项目易出错的困难
  • 双端队列的0-1BFS
  • Python psycopg2 类库使用学习总结
  • 多后端服务器架构解析 - 教程
  • 24NOIP游记——彼时彼刻
  • PWN手的成长之路-15-jarvisoj_level2_x64
  • 价值博弈场的工程实现:构建数字文明的价值免疫系统——声明Ai生成
  • 2025年两联供室内机厂家最新权威推荐榜:技术实力与市场口碑
  • 2025铝合金微弧氧化厂家权威推荐榜:表面处理技术实力深度解
  • 2025杉木木方厂家最新权威推荐榜:优质木材与稳定供应口碑之
  • 2025年厂房保养厂家最新权威推荐榜:专业维护与成本控制优选
  • 详细介绍:基于微信小程序的智能在线预约挂号系统【2026最新】
  • 2025中医师承权威推荐榜:名师带徒与临床实践深度解析
  • 2025液压无损扒胎机厂家权威推荐榜:高效无损与耐用性能深度
  • 在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
  • [转] 基于ubuntu-base进行根文件系统的修改与打包
  • jquery 字符串转数字