用 JavaScript 计算引文中的 h 指数
假设我们有一个正整数数组,表示一位研究员在一段时间内开展的引文数量。
我们需要编写一个 JavaScript 函数,该函数接收一个这样的数组,函数应根据数组中表示的引文数据找到该研究员的 h 指数。
H 指数
考虑一位研究员在其职业生涯中进行了 N 次引文。然后,如果研究员 N 篇论文中有 h 篇论文至少有 h 次引文,而另外 N − h 篇论文最多有 h 次引文,那么研究员的 h 指数为 h。
例如 −
如果引文数组为 −
const arr = [1, 6, 3, 0, 5];
此数据表示研究员总共有 5 篇论文,分别收到 1、6、3、0、5 次引文。
由于研究员有 3 篇论文至少有 3 次引文,其余两篇论文最多有 3 次引文,因此 h 指数为 3。
因此,此数组的输出应为 −
const output = 3;
示例
以下是代码 −
const arr = [1, 6, 3, 0, 5];
const findHIndex = (arr = []) => {
let possible = [];
let { length: len } = arr;
if (len === 0){
return 0;
};
possible.length = len + 2;
possible = possible.join('-').split('').map(() => 0);
for (let i = 0; i < len; i ++) {
let val = arr[i];
let ind = val > len ? len : val;
possible[ind] += 1;
}
let result = 0;
for (let k = len; k >= 0; k --) {
result += possible[k];
if (result >= k) {
return k;
}
}
};
console.log(findHIndex(arr));输出
以下是控制台输出 −
3
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP