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

【二分查找】力扣 275. H 指数 II

一、题目

在这里插入图片描述

二、思路

  • h 指数是高引用引用次数,而 citations 数组中存储的就是不同论文被引用的次数,并且是按照升序排列的。也就是说 h 指数将整个 citations 数组分成了两部分,左半部分是不够引用 h 次 的论文,右半部分论文的引用次数都是大于等于 h 的。
  • 因此,可以采用二分查找的思路来进行求解 h 指数。
  • 需要注意的是:有时论文的引用次数并不一定是 citations 数组中的数值。
    • 例如:citations = [0, 1, 2, 4, 5, 6],其 h 指数是 3。

三、题解

class Solution {public int hIndex(int[] citations) {int n = citations.length;int left = 0, right = n - 1;int ans = Math.min(1, citations[0]);// citations[0] 是引用次数最少的论文while (left <= right) {int mid = left + (right - left)/2;// n - mid 代表右半部分的数组,为符合条件的论文数量// 比较 符合条件的论文数量 和 citations[mid]// h 指数(ans)更新为二者中较小的if (n - mid > citations[mid]) {ans = Math.max(ans, citations[mid]);left = mid + 1;} else if (n - mid < citations[mid]) {ans = Math.max(ans, n - mid);right = mid - 1;} else {ans = citations[mid];break;}}return ans;}
}
http://www.lryc.cn/news/495298.html

相关文章:

  • 使用uni-app进行开发前准备
  • AI开发-深度学习框架-PyTorch-torchnlp
  • VBA数据库解决方案第十七讲:Recordset对象记录位置的定位方法
  • Ubuntu 操作系统
  • Maven 内置绑定到底怎么回事?
  • 如何把Qt exe文件发送给其他人使用
  • 【汇编语言】call 和 ret 指令(三) —— 深度解析汇编语言中的批量数据传递与寄存器冲突
  • 定义函数合并字符串—超详细讲解
  • 实现 vue3 正整数输入框组件
  • Leetcode - 周赛425
  • c++(斗罗大陆2)
  • redis常见数据类型
  • MySQL - 性能优化
  • Linux进程概念-详细版(一)
  • K8S网络系列--Flannel网络下UDP、VXLAN模式的通信流程机制分析
  • ThreadLocal的设计思考
  • shell脚本练习(2)
  • 通讯专题4.1——CAN通信之计算机网络与现场总线
  • Harmony NEXT-越过相机读写权限上传图片至项目云存储中
  • MATLAB基础应用精讲-【数模应用】Retinex图像去雾算法(附MATLAB和python代码实现)
  • 点击A组件跳转到B页面的tab的某一列
  • HarmonyOS xml转换JavaScript 常用的几个方法
  • Linux笔记---进程:进程等待
  • 【Linux】匿名管道通信场景——进程池
  • 算法妙妙屋-------1.递归的深邃回响:全排列的奇妙组合
  • 【maven-6】Maven 生命周期相关命令演示
  • 黑马程序员Java笔记整理(day06)
  • LeetCode【代码随想录】刷题(动态规划篇)
  • 【看海的算法日记✨优选篇✨】第三回:二分之妙,寻径中道
  • 基于yolov8、yolov5的铝材缺陷检测识别系统(含UI界面、训练好的模型、Python代码、数据集)