从偏差到巅峰:小哆啦与 h 指数的较量

ops/2025/1/20 12:57:13/

小哆啦开始力扣每日一题的第十天

https://leetcode.cn/problems/h-index/description/

从偏差到巅峰:小哆啦与 h 指数的较量

有一天,小哆啦发现科学城最顶级的研究员们都有一个共同的荣耀——他们的 h 指数。听说 h 指数越高,学术影响力越大!她满怀信心地对自己说:“我的学术成果也不赖,我的 h 指数一定很高!”

于是,她坐在书桌前,拿起自己的论文数据: [3, 0, 6, 1, 5]

小哆啦心想:“h 指数听起来很简单,至少 h 篇论文被引用了至少 h 次嘛!我聪明得很,肯定一下就能算出来。”
她眯着眼睛,摸了摸下巴,自信满满地敲下了以下代码:

function hIndex(citations: number[]): number {if (citations.length === 1) return citations[0];citations = citations.sort((a, b) => a - b); // 从小到大排序let middle = Math.floor(citations.length / 2);return citations[middle]; // 直接取中间的数字!
}

她得意地跑了个测试:

const citations = [3, 0, 6, 1, 5];
console.log(hIndex(citations)); // 输出: ???

屏幕上亮起了 3

她自信的开启了第二个测试:

const citations = [100];
console.log(hIndex(citations)); // 输出: ???

100

这下小哆啦崩溃了,她瘫坐在椅子上,陷入了自我怀疑:“难道我学术之路就此止步?不可能!一定是哪里出了问题!”


正确的旅程:真相的逐步揭晓

就在这时,小哆啦的好友小明走了过来,拍了拍她的肩膀:“别灰心!h 指数可没那么简单,要不我帮你理一理吧?”


第一幕:排序之谜

小明:“你一开始就错了,h 指数不是中位数啊!它讲究的是论文引用的‘高光时刻’,所以要从高到低排序!”

于是小哆啦把代码改成了:

citations = citations.sort((a, b) => b - a); // 从高到低排序

她看了看结果:[6, 5, 3, 1, 0]。
小哆啦恍然大悟:“哦!这样才能先数出那些被引用次数多的论文嘛。”


第二幕:逐步探索 h 的真正含义

小明:“接下来,你得逐一尝试每个论文,看有多少篇论文满足条件——至少被引用 h 次,同时剩下的论文不多于 h 篇。”

小哆啦皱着眉头:“怎么尝试?”

小明笑了笑,写下了这段逻辑:

let h = 0;
for (let i = 0; i < citations.length; i++) {if (citations[i] >= i + 1) {h = i + 1; // 至少有 h 篇论文被引用了 h 次} else {break; // 不满足 h 指数条件,停止}
}

第三幕:荣耀的诞生

小哆啦跑了完整代码:

function hIndex(citations: number[]): number {citations = citations.sort((a, b) => b - a); // 从高到低排序let h = 0;for (let i = 0; i < citations.length; i++) {if (citations[i] >= i + 1) {h = i + 1; // 论文满足条件,更新 h} else {break; // 条件不再满足,停止}}return h; // 返回最大 h
}

测试用例一个个跑起来:

const citations1 = [3, 0, 6, 1, 5];
console.log(hIndex(citations1)); // 输出: 3const citations2 = [1, 3, 1];
console.log(hIndex(citations2)); // 输出: 1const citations3 = [100];
console.log(hIndex(citations3)); // 输出: 1

每个结果都对了!小哆啦激动地跳了起来:“终于成功了!”


结局:科学的胜利

小哆啦把这段代码保存好,还在科学城的学术论坛上发表了文章。


http://www.ppmy.cn/ops/151678.html

相关文章

EI Scopus双检索 | 2025年第四届信息与通信工程国际会议(JCICE 2025)

会议简介 Brief Introduction 2025年第四届信息与通信工程国际会议(JCICE 2025) 会议时间&#xff1a;2025年7月25日-27日 召开地点&#xff1a;中国哈尔滨 大会官网&#xff1a;www.jcice.org 由黑龙江大学和成都信息工程大学主办&#xff0c;江苏科技大学协办的2025年第四届信…

非常实用的PDF工具

有小伙伴问我PDF压缩方面的软件&#xff0c;这类的软件其实好多&#xff0c;那么今天给大家推荐一款&#xff0c;其非常好用&#xff01; 软件介绍 PDF压缩器 PDF压缩器这款软件是之前收藏的&#xff0c;已经有好几年了。 文末获取软件解压后&#xff0c;我们首先双击exe安装软…

C++,设计模式,【目录篇】

文章目录 1. 简介2. 设计模式的分类2.1 创建型模式&#xff08;Creational Patterns&#xff09;&#xff1a;2.2 结构型模式&#xff08;Structural Patterns&#xff09;&#xff1a;2.3 行为型模式&#xff08;Behavioral Patterns&#xff09;&#xff1a; 3. 使用设计模式…

Windows电脑安装File Browser与cpolar轻松搭建本地云盘

文章目录 前言1.下载安装File Browser2.启动访问File Browser3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 无论是个人用户还是企业团队&#xff0c;都希望能够有一个高效、安全的解决方案来…

靠右行驶数学建模分析(2014MCM美赛A题)

笔记 题目 要求分析&#xff1a; 比较规则的性能&#xff0c;分为light和heavy两种情况&#xff0c;性能指的是 a.流量与安全 b. 速度限制等分析左侧驾驶分析智能系统 论文 参考论文 两类规则分析 靠右行驶&#xff08;第一条&#xff09;2. 无限制&#xff08;去掉了第一条…

通过ssh连接debian

使用方法 ssh usernameipaddress [inputpasswd]root用户默认无法由ssh连接&#xff0c; 可以通过修改配置 sudo vim /etc/ssh/sshd_config去掉PermitRootLogin前的‘#’,并修改为 PermitRootLogin yes 重启sshd服务 sudo systemctl restart sshd参考 https://linuxconfig.or…

对reluctant含义最合理的几种解释

英语单词 reluctant&#xff0c;表示“不情愿的或勉强的”这样的含义。 reluctant a.不情愿的&#xff1b;勉强的 这个单词是一个心理学有关或表现人的心理或内心情绪情感或思想倾向存在矛盾现象的一个词汇&#xff0c;单词含义本身&#xff0c;并不复杂&#xff0c;【不情愿…

【18】Word:明华中学-儿童医保❗

目录 题目​ NO2 NO3 NO4 NO5 NO6 NO7 NO8 NO9 题目 NO2 布局→页面设置对话框→纸张方向&#xff1a;横向→纸张大小&#xff1a;A3 &#xff1b;页面设置对话框&#xff1a;直接输入纸张大小的宽度和高度即可→页面设置对话框&#xff1a;上下左右边距→版式&…