首页 > 其他分享 >【二分查找】力扣 275. H 指数 II

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

时间:2024-12-01 21:00:47浏览次数:7  
标签:力扣 int 论文 mid II citations 275 ans left

一、题目

在这里插入图片描述

二、思路

  • 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;
    }
}

标签:力扣,int,论文,mid,II,citations,275,ans,left
From: https://blog.csdn.net/J_pluto/article/details/144174305

相关文章

  • HAL库软件IIC、硬件IIC移植江科大0.96寸OLED屏幕代码;软件I2C和硬件I2C区别
    程序链接:软件IIC链接:https://pan.baidu.com/s/1PoTuWDgO3i-ELu5gbV_vOA?pwd=feee提取码:feee硬件IIC链接:https://pan.baidu.com/s/12v2VeP7-FPFYyziSGsBwdw?pwd=3nhw提取码:3nhw 1.江科大OLED链接:[模块教程]第1期0.96寸OLED显示屏_哔哩哔哩_bilibili江科大的......
  • LCR 151.彩灯装饰记录III
    题目代码classSolution{publicList<List>levelOrder(TreeNoderoot){if(root==null){returnnewArrayList<>();}Queue<TreeNode>queue=newLinkedList<>();List<List<Integer>>res=newArrayList<>();......
  • 力扣--LCR 149.彩灯装饰记录I
    题目代码/**Definitionforabinarytreenode.publicclassTreeNode{intval;TreeNodeleft;TreeNoderight;TreeNode(){}TreeNode(intval){this.val=val;}TreeNode(intval,TreeNodeleft,TreeNoderight){this.val=val;......
  • 力扣876. 链表的中间结点
    文章目录一、快慢指针二、运行代码链表的中间结点一、快慢指针我们学习快慢指针,是为了这种算法思想。顾名思义,是一个慢指针,一步一步走。快指针随心所欲,可以一次走两步,也可以一次走三步四步等。如果一次走两步的话,当快指针走到链表尾部的时候,慢指针恰好可以走到链......
  • 力扣每日一题 单调数组对的数目(dp)
     题目困难 动态规划给你一个长度为 n 的 正 整数数组 nums 。如果两个 非负 整数数组 (arr1,arr2) 满足以下条件,我们称它们是 单调 数组对:两个数组的长度都是 n 。arr1 是单调 非递减 的,换句话说 arr1[0]<=arr1[1]<=...<=arr1[n-1] 。arr2......
  • 【每日一题】3251. 单调数组对的数目 II
      给你一个长度为 n 的 正 整数数组 nums 。如果两个 非负 整数数组 (arr1,arr2) 满足以下条件,我们称它们是 单调 数组对:两个数组的长度都是 n 。arr1 是单调 非递减 的,换句话说 arr1[0]<=arr1[1]<=...<=arr1[n-1] 。arr2 是单调 非递增 ......
  • 力扣刷题——3251. 单调数组对的数目 II
    考虑arr1可以取到的数字组合数,从0到i+1位置的合法的arr1组合数,可以从0到i的组合数得到。因此可以想到用动态规划解决问题,使用一个数组dp[i][j]代表arr1[i]=j时,前i+1个数字有多少个组合。这样一来,最终的答案即为sum(dp[n-1][0...M],其中M为nums中最大值。根据这个思路写出一个简......
  • iis转发域名到其他端口
    下载ApplicationRequestRoutinghttps://www.iis.net/downloads/microsoft/application-request-routing 配置 创建iis站点  文件夹里放web.config<?xmlversion="1.0"encoding="UTF-8"?><configuration><system.webServer>......
  • Apple开发_NSImage与CIImage之间的相互转换
    -(CIImage*)NSImage_To_CIImage:(NSImage*)gc_image{CGImageRefcg_image=[gc_imageCGImageForProposedRect:nilcontext:nilhints:nil];CIImage*ci_image=[CIImageimageWithCGImage:cg_image];......
  • 1205. 每月交易 II
    目录题目链接(无_力扣VIP_略过)1.读题(建议使用这种表结构_数据对比看)题目SQLSchema建表语句_数据2.答案_一图解一图解答案------------------------------------------------------------------------------解题分析图览方法1方法2难点分析关键总结题目链接(......