本文主要是介绍274. H 指数 Python,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、题目描述
- 示例 1
- 示例 2
- 二、代码
- 三、解题思路
一、题目描述
给你一个整数数组 citations
,其中 citations[i]
表示研究者的第 i
篇论文被引用的次数。计算并返回该研究者的 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
二、代码
代码如下:
import numpy as np
class Solution:def hIndex(self, citations: List[int]) -> int:h = len(citations)c = np.array(citations)for i in range(h, -1, -1):now_c = c - iif np.sum( now_c >= 0 ) >= i:print(i)return i
三、解题思路
本题主要是寻找当前citations
中最大的h
指数,关于h指数的定义题中已明确,因为h
指数最大只能是citations
的长度,所以本题解采用将h
指数从大到小挨个判断的方式寻找最大的h指数。具体思路如下:
①用citations
中的每一个元素减去当前的h
指数,得到now_c
②计算now_c
中有多少个元素是大于等于0
的(np.sum( now_c >= 0 )
),如果结果大于等于当前的h
指数,则满足条件,返回当前的h
指数即可;反之,则令当前的h
指数减一,重复①、②操作直到找出为止。
这篇关于274. H 指数 Python的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!