【力扣】274. H 指数

简介: 【力扣】274. 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

解题方法

  • 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(nlog⁡n),其中 n 为数组 citations 的长度。

空间复杂度为 O(log⁡n),其中 n 为数组 citations 的长度。


相关文章
|
6月前
|
Java
贪心 -力扣860.柠檬水找零力扣2208.将数组和减半的最少操作次数力扣179.最大数力扣376.摆动序列
贪心 -力扣860.柠檬水找零力扣2208.将数组和减半的最少操作次数力扣179.最大数力扣376.摆动序列
|
7月前
leetcode 275 H指数 2
leetcode 275 H指数 2
24 0
|
7月前
【力扣】69. x 的平方根
【力扣】69. x 的平方根
|
7月前
考研高数之无穷级数题型二:求和函数(题目讲解)
考研高数之无穷级数题型二:求和函数(题目讲解)
129 0
|
索引
每日一题 Leetcode-1499满足不等式的最大值
每日一题 Leetcode-1499满足不等式的最大值
64 0
|
人工智能 移动开发 机器人
蓝桥杯AcWing 题目题解 - 二分与前缀和、差分
蓝桥杯AcWing 题目题解 - 二分与前缀和、差分
172 0
力扣69x的平方根
力扣69x的平方根
64 0
【力扣·每日一题】372. 超级次方(欧拉降幂 快速幂)
【力扣·每日一题】372. 超级次方(欧拉降幂 快速幂)
93 0
【力扣·每日一题】372. 超级次方(欧拉降幂 快速幂)
LeetCode每日一题(1)——最大回文数乘积
LeetCode每日一题(1)最大回文数乘积 1.题目 2.示例 3.思路 1.生成位数符合要求的递减的回文数 2.判断回文数是否符合要求 4.代码 5.复杂度分析
110 0
【力扣】x 的平方根 学霸题你学废了么?
【力扣】x 的平方根 学霸题你学废了么?
【力扣】x 的平方根 学霸题你学废了么?

热门文章

最新文章