用 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
广告