【LeetCode:274. H 指数 | 二分 】

news2024/11/27 12:40:26

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述
在这里插入图片描述

🍔 目录

    • 🚩 题目链接
    • ⛲ 题目描述
    • 🌟 求解思路&实现代码&运行结果
      • ⚡ 二分
        • 🥦 求解思路
        • 🥦 实现代码
        • 🥦 运行结果
    • ⛲ 课后练习
    • 💬 共勉

🚩 题目链接

  • 274. H 指数

⛲ 题目描述

给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 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

提示:

n == citations.length
1 <= n <= 5000
0 <= citations[i] <= 1000

🌟 求解思路&实现代码&运行结果


⚡ 二分

🥦 求解思路
  1. 题目让我们求解的是必须满足,论文最少引用的最大值,也就是最低标准的最大值。我们可以通过二分来求解。
  2. 通过二分引用的论文数,不断的进行判断满足当前最少引用的最大值。
  3. 实现代码如下。
🥦 实现代码
class Solution {
    public int hIndex(int[] citations) {
        Arrays.sort(citations);
        int left=-1,right=citations.length+1;
        while(left+1<right){
            int mid=(left+right+1)>>1;
            if(check(citations,mid)){
                left=mid;
            }else{
                right=mid;
            }
        }
        return left;
    }

    public boolean check(int[] arr,int x){
        int cnt=0;
        for(int v:arr){
            if(v>=x) cnt++;
        }
        return cnt>=x;
    }
}
🥦 运行结果

在这里插入图片描述


⛲ 课后练习

  • 275. H 指数 II
    (特别说明:275是和274题目一模一样,唯一有改变的就是给定的数据量)

💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1146479.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《算法通关村—计算器|逆波兰问题解析》

《算法通关村—计算器|逆波兰问题解析》 计算器问题 描述 LeetCode227.给你一个字符串表达式 s &#xff0c;请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。 输入&#xff1a;s "32*2" 输出&#xff1a;7基本思路&#xff1a;理解题目&a…

1.1 计算机安全概念

思维导图&#xff1a; 前言&#xff1a; 第1章: 计算机与网络安全概念笔记 1. 学习目标 了解保密性、完整性和可用性的关键安全需求。了解OSI的X.800安全架构。识别和举例说明不同的安全威胁和攻击。掌握安全设计的基本准则。熟悉攻击面和攻击树的使用。了解与密码标准相关的…

VulnHub DC-1

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

Springboot项目Eureka安全加密

一、通过security增加账号密码登录 1、registry服务pom增加security依赖 2、registry 配置文件 指定security账号密码 3、http://账号:密码IP:PORT/eureka/ 4、重启 二、关闭节点 三、防火墙移除eureka端口访问 参考&#xff1a;Linux(Centos7)操作记录

制作电子版宣传画册,抢占线上消费市场

随着互联网和移动设备的普及&#xff0c;企业在如今如此激烈的市场竞争中&#xff0c;怎样才能提高自身的宣传力度&#xff0c;进而让企业在市场中占一席之地呢&#xff1f;现在大多数企业都青睐于借助电子画册的形式来实现。 如何制作电子版宣传画册&#xff0c;抢占市场消费资…

02、SpringCloud -- Redis和Cookie过期时间刷新功能

目录 需求:代码流程过滤器类工具类过滤判断远程调用feign接口gitee 配置接口实现过滤器run方法测试:问题:需求: cookie应该写在网关中,网关中可以自定义filter过滤器,用来实现cookie的刷新和redis中key的刷新,延长用户的操作时间。 就是让用户每操作一次,就可以重新刷…

Springboot前后端分离同一套代码在同一台服务器上搭两个测试环境

一、Nginx监听不同端口 1、两个环境不同Service端口指定&#xff0c;可参考 中间件&#xff1a;Nginx工作使用记录&#xff08;反向代理&#xff09; 2、端口允许访问设置&#xff1a; 云服务需配置开通入方向规则 检查服务器防火墙是否开通&#xff0c;并开通端口&#xff0…

大数据学习(18)-任务并行度优化

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…

自制照片书的全过程

​ 如今&#xff0c;我们生活在一个信息爆炸的时代&#xff0c;照片已成为我们记录生活、分享情感的重要方式。而亲手制作照片书&#xff0c;不仅能让你感受到制作过程的乐趣&#xff0c;更能为你的回忆注入独特的情感和感受。 但是你知道如何制作照片书吗?小编给大家推荐一款…

华为机试题:HJ7 取近似值

目录 第一章、算法题1.1&#xff09;题目描述1.2&#xff09;第一种解题思路与答案1.3&#xff09;第二种解题思路与答案1.4&#xff09;牛客链接 友情提醒: 先看文章目录&#xff0c;大致了解文章知识点结构&#xff0c;点击文章目录可直接跳转到文章指定位置。 第一章、算法…

Qt配置OpenCV教程,亲测已试过

详细版可参考&#xff1a;Qt配置OpenCV教程&#xff0c;亲测已试过&#xff08;详细版&#xff09;_qt opencv_-_Matrix_-的博客-CSDN博客 软件准备&#xff1a;QtOpenCVCMake (QtOpenCV安装不说了&#xff0c;CMake的安装&#xff0c;我用的是&#xff1a;可参考博客&#x…

docker删除集群镜像

今天使用docker安装了集群后&#xff0c;删除镜像失败&#xff0c;如图: 使用docker rmi 镜像Id删除镜像出现错误&#xff1a; Error response from daemon: conflict: unable to delete 41dc8ea0f139 (must be forced) - image is referenced in multiple repos …

故障诊断模型 | Maltab实现BiLSTM双向长短期记忆神经网络故障诊断

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现BiLSTM双向长短期记忆神经网络故障诊断 模型描述 利用各种检查和测试方法,发现系统和设备是否存在故障的过程是故障检测;而进一步确定故障所在大致部位的过程是故障定位。故障…

基于花授粉算法的无人机航迹规划

基于花授粉算法的无人机航迹规划 文章目录 基于花授粉算法的无人机航迹规划1.花授粉搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用花授粉算法来优化无人机航迹规划。 1.花授粉…

EASYX剪切区域

eg1:EASY中的颜色模型 可以参考推荐16进制颜色表&#xff1a;https://www.codeeeee.com/color/rgb.html 参考学习EASYX在线文档https://docs.easyx.cn/zh-cn/drawing-func easyx的基本概念和使用方式 #include <stdio.h> #include <easyx.h> #include <iostr…

[Python进阶] 消息框、弹窗:pywin32

6.19 消息框、弹窗&#xff1a;pywin32 说明&#xff1a; pywin32是一个第三方模块库&#xff0c;主要的作用是方便Python开发者快速调用windows API的一个模块库。同时pywin32也是一些windows上第三方Python模块库的前提&#xff0c;例如wmi&#xff0c;如果没有安装pywin32是…

Web APIs——事件流

一、事件流 1.1 事件流与两个阶段说明 事件流指的是事件完整执行过程中的流动路径 说明&#xff1a;假设页面里有个div&#xff0c;当触发事件时&#xff0c;会经历两个阶段&#xff0c;分别是捕获阶段、冒泡阶段 简单来说&#xff1a;捕获阶段是 从父到子 冒泡阶段是从子到父…

故障诊断模型 | Maltab实现GRU门控循环单元故障诊断

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现GRU门控循环单元故障诊断 模型描述 利用各种检查和测试方法,发现系统和设备是否存在故障的过程是故障检测;而进一步确定故障所在大致部位的过程是故障定位。故障检测和故障定位…

问题 S: 一只小蜜蜂...(初始化dp)

1.注意点&#xff1a; 该题递推公式为斐波那契数列&#xff0c;而n达到50&#xff0c;是非常大的数 &#xff0c; 故应用循环代替递归&#xff0c;同时记录数据 ​​ 2.注意点&#xff1a;初始化起点&#xff0c;切忌重新递归找数 可以直接初始化所求数据&#xff0c;对应之…

不同碳化硅晶体面带来的可能性

对于非立方晶体&#xff0c;它们天生具有各向异性&#xff0c;即不同方向具有不同的性质。以碳化硅晶体面为例&#xff1a; 4H-SIC和6H-SIC的空间群是P63mc&#xff0c;点群是6mm。两者都属于六方晶系&#xff0c;具有各向异性。3C-SIC的空间群是F-43m&#xff0c;点群是-43m。…