Leetcode 274 H指数
Leetcode 274. H指数
题目
给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。
h 指数的定义:h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (n 篇论文中)总共有 h 篇论文分别被引用了至少 h 次。且其余的 n - h 篇论文每篇被引用次数 不超过 h 次。
例如:某人的 h 指数是 20,这表示他已发表的论文中,每篇被引用了至少 20 次的论文总共有 20 篇。
提示:如果 h 有多种可能的值,h 指数 是其中最大的那个。
解题思路1
首先一定要读懂题意。我们设num_h是被引用论文的数量,同时它表示总共有num_h篇论文分别被至少引用了num_h次;num_frequecy是论文引用次数超过num_h的论文的篇数。我们就是要在这两个数字里进行比较。只要高引用论文次数(num_frequency)大于等于高引用论文数量(num_h),那么我们认为高引用指数index=num_h,否则我们推出循环。
还有一个易错点就是num_h的取值,它的取值是从0到num,而不是num-1
解题思路2
先对容器进行排序。那么容器中元素的索引代表的就是num_h,容器中的元素代表的就是num_frequency。比较它俩的值,我们便可以计算出H值。
代码块
class Solution {
public:int hIndex(vector<int>& citations) {int num=citations.size();//学者的论文数//1.高引用指数绝对不会大于论文数,那么最笨的方法就是从0开始遍历//2.需要比较两个数的大小,第一个就是高引用论文次数,另一个就是高引用论文数量//3.要注意一点,不同论文被引用的次数会有相同的情况/*4.以上全是废话,实际情况是根本不需要区分第3点所讲的情况。只要高引用论文次数(num_frequency)大于等于高引用论文数量(num_h),那么我们认为高引用指数index=num_h。还有一个易错点就是num_h的取值,它的取值是从0到num,而不是num-1*/int num_h,num_frequency;int index=0;int same=0;for(num_h=0;num_h<=num;++num_h){num_frequency=0;same=0;for(int i=0;i<num;++i){if(citations[i]>=num_h){++num_frequency;//统计的是论文引用次数大于论文本身数量的次数}/*else if(citations[i]==num_h){++same;//统计的是论文引用次数等于论文本身数量的次数}*/}
/* //实际的论文引用次数 大于 等于 论文本身数量的次数=num_frequency+sameif(same==1){num_frequency=num_frequency+1>num_h?num_h:num_frequency;}else if(same>1){num_frequency=num_frequency+same>num_h?num_h:num_frequency;}*/if(num_frequency>=num_h){index=num_h;}else if(num_frequency<num_h){break;}}return index;}
};
Leetcode 274 H指数相关推荐
- LeetCode 274. H指数(排序,哈希)
1. 题目 给定一位研究者论文被引用次数的数组(被引用次数是非负整数).编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数"(high c ...
- LeetCode 981. 基于时间的键值存储 / 274. H 指数 / 275. H 指数 II
981. 基于时间的键值存储 2021.7.10 每日一题 题目描述 创建一个基于时间的键值存储类 TimeMap,它支持下面两个操作:1. set(string key, string value, ...
- LeetCode Algorithm 274. H 指数
274. H 指数 Ideas H指数表示的是有h篇论文被引用了至少h次. 我们可以将citations逆序排列,表示引用次数从高到底排列. 如果我们从前向后遍历数组,那么第i位上值v,就表示至少有i ...
- LeetCode 275. H指数 II(二分查找)
1. 题目 给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列.编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数&q ...
- 274. H 指数----中等
题目 给定一位研究者论文被引用次数的数组(被引用次数是非负整数).编写一个方法,计算出研究者的 h 指数. h 指数的定义:h 代表"高引用次数"(high citations), ...
- leetcode 275. H 指数 II
给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照 升序排列 .编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数" ...
- 274. H 指数(中)
思路 首先看到h个元素大于等于某个值,N-h个元素小于等于某个值,这显然是一个有序序列的特征,所以自然而然的想到先将数组排序: 将数组排序之后,对于给定的某个i,我们知道有citations.leng ...
- 二分答案——H指数(Leetcode 274)
题目选自Leetcode 274. H指数 二分查找(答案)的简单题~ 理解题意 这个例子有点儿特殊,论文被引用了 3 次,篇数有 3 篇.再来看一个更一般的例子: 结论: 这条分割线越靠左边,说明被 ...
- 全球 Top 1000 计算机科学家 h 指数公布,中国顶尖计算机科学家人数进入前三
整理 | Carol 出品 | CSDN(ID:CSDNnews) 近日,Guide2Research公布了2021年世界顶尖1000名计算机科学家排名.美国科学家登榜数量达614名,稳居上榜科学家数 ...
- 【数据结构与算法】之深入解析“H指数II”的求解思路与算法示例
一.题目要求 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数,citations 已经按照升序排列,计算并返回该研究者的 h 指数. h ...
最新文章
- 问:一行Python代码到底能干多少事情?(一)
- c++读取图片_Pytorch读取,加载图像数据(一)
- Java操作Oracle
- 1006	换个格式输出整数(C语言)
- macOS “不能安装该软件,因为当前无法从软件更新服务器获得” 解决方法
- mysql的number范围_数据库number类型精度实用分析
- 龙卷风路径_ae龙卷风路径
- jersey restful 测试_Jersey实现Restful服务
- 四月一个晴朗的早晨,遇见一个百分之百的女孩
- 使用do文件进行仿真时出现“failed tofind ‘glbl’in hierarchical name ‘/glbl/GSR‘“的解决办法
- python关联分析库_使用Python进行数据关联分析
- android 厨房的使用方法,安卓ROM厨房定制工具使用教程
- 燕千云 YQCloud 数智化业务服务管理平台发布1.11版本
- Git详解之服务部署
- JDBC-使用Statement操作数据库的弊端
- 砼匠商砼ERP大屏展示效果图
- 非线性规划(凸规划,无约束最优化方法,约束最优化方法)
- IIR数字滤波器原理与应用
- 澳洲技术移民评分标准
- Vscode下载与配置(C语言)