H 指数,经典算法实战。

在这里插入图片描述

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。

🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。

🎉欢迎 👍点赞✍评论⭐收藏

在这里插入图片描述
🔎 算法领域知识 🔎

链接专栏
分发糖果算法专栏
买卖股票的最佳时机算法专栏
跳跃游戏算法专栏
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

示例 2:

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

提示:

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

实现逻辑:

首先将数组 citations 从小到大排序。然后从前向后扫描数组,如果当前遍历到的元素 citations[i] 大于 h ,那么 h 值加 1。一直重复此过程,直到 citations[i] 不再大于 h 或者遍历完数组。返回最终的 h 值即可。

Java代码实现:

public int hIndex(int[] citations) {// 先从小到大对数组进行排序Arrays.sort(citations);// 初始化h指数为0int h = 0;// 从前往后扫描数组for(int i = 0; i < citations.length; i++) {// 如果当前引用次数大于等于当前的h指数if(citations[i] >= h + 1) {h++;} else {// 如果当前引用次数小于当前的h指数,说明后面的元素引用次数也会小于h指数break;}}// 返回最终的h指数return h;
}

执行过程:

假设输入的数组为 [3,0,6,1,5],按照以上算法实现,执行步骤如下:

  1. 先将数组从小到大排序,得到 [0,1,3,5,6]
  2. 初始化 h 指数为 0。
  3. 从前往后扫描数组,先遍历到元素 0,引用次数小于等于当前 h 值,停止遍历。
  4. 返回 h 指数为 0。

🏆关注作者,普修罗双战士,给你不一样的技术体验,一起在技术领域扶摇直上九万里,共筑坚如磐石的权。

🎉欢迎 👍点赞✍评论⭐收藏

在这里插入图片描述

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

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

相关文章

【java八股文】之Java基础篇

1、Java有哪几种数据类型 基本数据类型&#xff1a;byte(1字节) short&#xff08;2字节&#xff09; int&#xff08;4字节&#xff09; long&#xff08;8字节&#xff09; float&#xff08;4字节&#xff09; double&#xff08;8字节&#xff09; char&#xff08;2字节&a…

写点东西《Docker入门(下)》

写点东西《Docker入门(下)》 Docker ComposeDocker 注册表Docker 引擎Linux 容器和 Windows 容器的概念:容器编排Docker SwarmDocker Compose Docker Compose 是一个方便的工具,可帮助您轻松运行和连接不同的软件服务,就好像它们都是同一事件的一部分一样。 Docker Compo…

[电影] - 恶人传(韩)

英文片名&#xff1a;The Gangster The Cop The Devil 黑帮老大开了地下游戏厅&#xff0c;贿赂了警察队长。警察主角是刑警二组组长&#xff0c;还是去游戏厅搜查。 警察主角抓了个比较搞笑的黄毛&#xff1a; 警察队长&#xff0c;有个专门电话和黑帮联络的&#xff1a; 两个…

【Python】编程练习的解密与实战(三)

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《Python | 编程解码》⏰诗赋清音&#xff1a;云生高巅梦远游&#xff0c; 星光点缀碧海愁。 山川深邃情难晤&#xff0c; 剑气凌云志自修。 目录 &#x1fa90;1. 初识Python &a…

Tensorflow和飞桨Paddle的控制流算子设计

一、概览 注&#xff1a;整体方案上尚存在技术疑点&#xff0c;需进一步小组内讨论对齐&#xff0c;避免方案设计上存在后期难以扩展&#xff08;或解决&#xff09;的局限性 框架TensorFlow 1.xTensorFlow 2.xPaddlecond/while√√√实现机制组合OP (DataFlow)函数式 (Functio…

Alphalens因子分析(4) - Information Coefficient方法

在前面的笔记中&#xff0c;无论是回报分析&#xff0c;还是因子Alpha&#xff0c;它们都受到交易成本的影响。信息分析 (Information Analysis)则是一种不受这种影响的评估方法&#xff0c;主要研究方法就是信息系数(Information Coefficient)。 信息系数的范围为-1到1&#x…

linux 02 vmware的快照,文件管理

01.快照 使用快照&#xff1a; 同时的快照管理器&#xff1a; 如果想要返回快照&#xff0c;选择要选择的快照&#xff0c;跳转 02. 文件管理&#xff1a; cd 修改当前路径 02.touch 创建文件 03. mkdir 创建文件夹 mkdir -p 文件夹 &#xff08;创建之前没有的上级文件…

leetcode面试经典150题——50 快乐数

题目&#xff1a;快乐数 描述&#xff1a; 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变…

微软Visual Studio产品之Visual C++编程进阶——一维数组(画画版)

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;看到不少初学者在学习编程语言的过程中如此的痛苦&#xff0c;我决定做点什么&#xff0c;我小时候喜欢看小人书&#xff08;连环画&#xff09;&#xff0c;在那个没有电视、没有手机的年代&#xff0c;这是…

聚乙烯PE的特性有哪些?UV胶水能够粘接聚乙烯PE吗?

聚乙烯&#xff08;Polyethylene&#xff0c;PE&#xff09;是一种聚合物&#xff0c;是由乙烯&#xff08;ethylene&#xff09;单体通过聚合反应形成的合成塑料。以下是聚乙烯的一些主要化学特性&#xff1a; 1.化学式&#xff1a; 聚乙烯的基本化学式是 (C2H4)n&#xff0c;…

回归预测 | Matlab基于SO-BiLSTM蛇群算法优化双向长短期记忆神经网络的数据多输入单输出回归预测

回归预测 | Matlab基于SO-LSTM蛇群算法优化长短期记忆神经网络的数据多输入单输出回归预测 目录 回归预测 | Matlab基于SO-LSTM蛇群算法优化长短期记忆神经网络的数据多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于SO-BiLSTM蛇群算法优…

读《Open-Vocabulary Video Anomaly Detection》

2023 西北工业大学和新大 引言 视频异常检测(VAD)旨在检测不符合预期模式的异常事件&#xff0c;由于其在智能视频监控和视频内容审查等应用前景广阔&#xff0c;已成为学术界和工业界日益关注的问题。通过几年蓬勃发展&#xff0c;VAD 在许多不断涌现的工作中取得了重大进展。…

Jenkins+nexus

jiekins安装完成 1、安装java环境 [rootnexus ~]# tar -xf jdk-8u211-linux-x64.tar.gz -C /usr/local [rootnexus ~]# vim /etc/profile.d/java.sh JAVA_HOME/usr/local/jdk1.8.0_211 PATH$PATH:$JAVA_HOME/bin [rootnexus ~]# source /etc/profile.d/java.sh 必须要选择与n…

Linux笔记之右上角的网络连接图标的IP是本机IP还是远程主机的IP

Linux笔记之右上角的网络连接图标的IP是本机IP还是远程主机的IP? code review! 文章目录 Linux笔记之右上角的网络连接图标的IP是本机IP还是远程主机的IP?问题一&#xff1a;Linux笔记之右上角的网络连接图标上面的IP是本机IP还是远程主机的IP&#xff1f;问题二&#xff1…

PDF-XChange Editor v10.2.0.384

软件介绍 PDF-XChange Editor&#xff0c;号称打开速度最快最强大的PDF编辑器/PDF阅读器&#xff0c;PDF-XChange专注于PDF文档的编辑&#xff0c;打开PDF文件速度快&#xff0c;软件小功能强大&#xff0c;可以自定义制作PDF电子文档&#xff0c;具有创建&#xff0c;查看&am…

大学物理-实验篇(二)——用分光计测定三棱镜的折射率(光:特定频段电磁波、光线在介质界面折射、平行光与凸透镜)

目录 预备知识 光&#xff1a;特定频段电磁波 光线在介质界面折射 平行光与凸透镜 实验目的 实验仪器 实验原理 实验步骤 准备分光计 目镜调焦 刻度盘读数 测三棱镜顶角 测三棱镜最小偏向角 数据处理 预备知识 光&#xff1a;特定频段电磁波 光速&#xff1a;…

【REST2SQL】08 日志重构增加输出到文件log.txt

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 【REST2SQL】06 GO 跨包接口重构代码 【REST2SQL】07 GO 操作 Mysql 数据库 原来…

OSG加载STL模型

下载了2个简单stl模型&#xff0c;用基本的加载代码&#xff1b;直接可以加载&#xff1b; 查一点资料&#xff1b; 怎样在OSG中添加支持STL格式的模型文件&#xff1f; 使用OSG时&#xff0c;如果需要导入STL格式的模型文件&#xff0c;需要添加STL插件。 可以通过在代码中调…

将字符串中制表符\t替换为指定数量的空格 numpy.char.expandtabs()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 将字符串中制表符\t 替换为指定数量的空格 numpy.char.expandtabs() [太阳]选择题 请问关于以下代码表述正确是&#xff1f; import numpy as np s 1\t2 print("【显示】s ",s) …

货拉拉智能监控实践:如何解决多云架构下的故障应急问题?

一分钟精华速览 在月活超千万的大规模业务背景下&#xff0c;货拉拉遭遇了多云环境下的监控碎片化、规划无序等问题。为了应对这些挑战&#xff0c;货拉拉开发了一站式监控平台——Monitor。该平台的部署有效地实现了对核心应用的监控和报警全覆盖&#xff0c;显著提高了应急响…