淄博网站制作优化,网站设计与网页制作心得体会,何使网站的页面结构更为合理建,微信里的网站怎么做题目描述
给你一个整数数组 citations #xff0c;其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。
根据维基百科上 h 指数的定义#xff1a;h 代表“高引用次数” #xff0c;一名科研人员的 h 指数 是指他#xff08;她#x…题目描述
给你一个整数数组 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.length1 n 50000 citations[i] 1000
解题方法
C
// 自定义比较函数
int mycmp(int* a, int* b) { return *a - *b; }
// [3,0,6,1,5] 5
int hIndex(int* citations, int citationsSize) {int h 0;// 从小到大排序// [0,1,3,5,6]qsort(citations, citationsSize, sizeof(int), mycmp);// i 4; h 0;// i 3; h 1; // i 2; h 2;// i 1; h 3;for (int i citationsSize - 1; i 0 citations[i] h; i--) {h;}return h;
}复杂度分析 时间复杂度为 O(nlogn)其中 n 为数组 citations 的长度。 空间复杂度为 O(logn)其中 n 为数组 citations 的长度。