【数组】Leetcode 274. H 指数【中等】

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。

解题思路

  • 先对研究者的论文被引用次数进行排序,然后从高到低遍历每篇论文
  • 下标n-i就是大于等于的数目,对应的数值就是引用数目,两者取小就是对应的h值。
  • 然后在所有的h值里面取最大的值。

Java实现

public class HIndex {public int hIndex(int[] citations) {Arrays.sort(citations);int n = citations.length;int hIndex = 0;for (int i = 0; i < n; i++) {//下标n-i就是大于等于的数目,对应的数值就是引用数目,// 两者取小就是对应的h值。int h = Math.min(citations[i], n - i);//在所有的h值里面取最大。hIndex = Math.max(hIndex, h);}return hIndex;}public static void main(String[] args) {HIndex hIndex = new HIndex();int[] citations1 = {3, 0, 6, 1, 5};int result1 = hIndex.hIndex(citations1);System.out.println("Test Case 1:");System.out.println("Citations: [3, 0, 6, 1, 5]");System.out.println("H-Index: " + result1); // Expected: 3int[] citations2 = {1, 3, 1};int result2 = hIndex.hIndex(citations2);System.out.println("\nTest Case 2:");System.out.println("Citations: [1, 3, 1]");System.out.println("H-Index: " + result2); // Expected: 1}
}

时间空间复杂度

  • 时间复杂度: 对数组进行排序的时间复杂度为 O(nlogn),其中 n 是数组的长度。遍历排序后的数组的时间复杂度为 O(n)。
  • 空间复杂度: 排序时使用了 O(logn) 的额外空间。

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

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

相关文章

【每日刷题】Day34

【每日刷题】Day34 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 1047. 删除字符串中的所有相邻重复项 - 力扣&#xff08;LeetCode&#xff09; 2. 1475. 商品折扣后…

Rust开发工具有哪些?

目录 一、JetBrains公司的RustRover​编辑 二、微软公司的Visual Studio Code 三、Rust编译工具 一、JetBrains公司的RustRover RustRover是由JetBrains开发的一款专为Rust开发量身定制的新兴IDE&#xff0c;目前还处于早期访问阶段。它支持Rust、Cargo、TOML、Web和数据库等…

5.27日学习记录及相关问题解答

1. 阅读文章 复习 JAVA基础——接口&#xff08;全网最详细教程&#xff09; Java之对象的多态性&#xff08;使用生活中通俗的例子讲解&#xff09; 新学 JavaWeb——Servlet&#xff08;全网最详细教程包括Servlet源码分析&#xff09; 有用 创建Dynamic Web Project工程&…

Unity如何使用adb工具安装APK

1、下载adb工具 SDK 平台工具版本说明 | Android Studio | Android Developers (google.cn) 2、配置环境变量 把platform-tools的路径添加进去就行 打开cmd&#xff0c;输入adb&#xff0c;即可查看版本信息 3、使用数据线连接设备&#xff0c;查看设备信息&#xff08;…

黄金投资怎么判断走势好坏?

投资黄金&#xff0c;就是押注于这一贵金属价格的变动。判断黄金价格的走势好坏&#xff0c;对于投资者来说至关重要。这需要从宏观经济指标、技术分析指标和市场情绪等多元化角度进行综合分析。 宏观经济指标 货币政策&#xff1a;中央银行的货币政策&#xff0c;尤其是利率决…

分布式事务Seata使用

我们要学习seata&#xff0c;首先需要具备如下技术储备&#xff1a; 数据库事务的基本知识&#xff1b;maven工具的使用&#xff1b;熟悉SpringCloudAlibaba技术栈&#xff1b;掌握SpringDataJPA简单使用&#xff1b; 一. Seata基本概念 1.seata是什么 Seata是阿里巴巴中间…

基于大模型(LLM)相互协商的情感分析

Sentiment Analysis through LLM Negotiations https://arxiv.org/abs/2311.01876https://arxiv.org/abs/2311.01876 1.概述 在情感分析任务中,传统的单一大型语言模型(LLM)通常只通过单轮输出来做出决策。这种方法的主要缺点是无法完美应对需要深入推理的复杂语言现象,…

力扣数据库题库学习(5.8日)--1795. 每个产品在不同商店的价格

1795. 每个产品在不同商店的价格 请你重构 Products 表&#xff0c;查询每个产品在不同商店的价格&#xff0c;使得输出的格式变为(product_id, store, price) 。如果这一产品在商店里没有出售&#xff0c;则不输出这一行。 输出结果表中的 顺序不作要求 。 查询输出格式请参考…

从零开始认识Linux只需要这些笔记就够了(8)

查看信息基本命令 1.查看网卡IP参数 ifconfig: #查看所有激活的网卡 ifconfig ens33(centos7.3第一块网卡名)&#xff1a;#查看具体某一个网卡 ifconfig -a:#查看所有的网卡 ip a 2.查看主机名 hostname 3.查看路由表,查看网关 route -n #-n 以数字形式显示地址信息…

Vue.js【路由】

初识路由 提到路由&#xff08;Route&#xff09;&#xff0c;一般我们会联想到网络中常见的路由器&#xff08;Router&#xff09;&#xff0c;那么路由和路由器之间有什么关联呢&#xff1f;路由是指路由器从一个接口接收到数据&#xff0c;根据数据的目的地址将数据定向传送…

【how2j JQuery部分】课后题答案及相关笔记

练习题 <script src"jquery.min.js"></script><script>$(function(){$(tr:odd).css({"background-color":"#f8f8f8"});}); </script> <style> table{border-collapse:collapse;width:90%;} tr{border-bottom-sty…

力扣每日一题108:将有序数组转换为二叉搜索树

题目 简单 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 平衡 二叉搜索树。 示例 1&#xff1a; 输入&#xff1a;nums [-10,-3,0,5,9] 输出&#xff1a;[0,-3,9,-10,null,5] 解释&#xff1a;[0,-10,5,null,-3,null,9] 也…

VS编辑器下使用MFC完成学生成绩统计分析系统

背景&#xff1a; &#xff08;一&#xff09;实验目的 通过该实验&#xff0c;使学生掌握windows程序设计的基本方法。掌握学生管理中学生成绩统计分析方面的基本知识&#xff0c;熟练应用数据库技术完成对学生成绩管理活动中各类信息的增加、修改、删除、查询等操作。通过处…

解锁AI的神秘力量:LangChain4j带你步入智能化实践之门

关注微信公众号 “程序员小胖” 每日技术干货&#xff0c;第一时间送达&#xff01; 引言 在数字化转型的浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;正逐渐成为推动企业创新和增长的关键力量。然而&#xff0c;将AI技术融入到日常业务流程并非易事&#xff0c;它…

tr,cut,sort,uniq,seq命令的使用

1.tr tr命令是一个文本处理工具&#xff0c;跟正则表达式&#xff0c;字符串。有替换&#xff0c;压缩&#xff0c;删除的功能。 -s压缩 -d删除 命令1&#xff1a;tr a b。将出现的a替换成b。 输入---aaa---bdd--- 输出---bbb---bdd--- 命令&#xff1a;tr -d [字符1字符…

Xshell7、XFtp无法安装报错问题

报错信息&#xff1a; xshell产品无法安装,请验证来源是否存在,是否可以访问 解决方案&#xff1a; 打开本地路径&#xff1a;C:\Program Files (x86)\InstallShield Installation Information 将次文件删掉&#xff0c;重新点击xshell安装程序&#xff0c;重新安装即可

《中国农村经济》文本分析技术最新进展总结盘点

[1]彭澎,周月书.新世纪以来农村金融改革的政策轨迹、理论逻辑与实践效果——基于2004-2022年中央“一号文件”的文本分析[J].中国农村经济,2022,(09):2-23. 关键词&#xff1a;农村金融改革;;中央“一号文件”;;三叉理论;;内容分析法 摘要&#xff1a;本文在对2004-2…

网络工程师------第二十一天

1、语言&#xff1a; 汇编语言是用助记符代替操作码、地址符号代替操作数的面向机器的语言&#xff1b; 解释程序对源程序一边翻译&#xff0c;一边执行&#xff0c;不产生目标程序&#xff1b; 机器语言&#xff1a;以二进制代码表示的机器指令的集合 高级语言&#xff1a…

H5视频付费点播打赏影视系统程序全开源运营版

这是一款视频打赏源码&#xff0c;勿做非法用途&#xff0c;由用户亲测功能完善&#xff0c;源码仅用于学习使用&#xff0c;分享链接是用户云盘&#xff0c;具有时效性&#xff0c;感兴趣的可以去学习。 thinkphp开发&#xff0c;前后端分离设计&#xff0c;支持游客登陆、VIP…

富格林:察觉虚假招数及时出金远离

富格林指出&#xff0c;在黄金现货市场&#xff0c;平衡盈亏风险一直是投资者的必修课&#xff0c;在进入市场之前需了解做单盈利技能&#xff0c;此外还需了解其中会存在的风险&#xff0c;在进入市场做单期间察觉虚假套路要及时的出金远离避免受害亏损。以下也总结几点正规的…