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指数相关推荐

  1. LeetCode 274. H指数(排序,哈希)

    1. 题目 给定一位研究者论文被引用次数的数组(被引用次数是非负整数).编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数"(high c ...

  2. LeetCode 981. 基于时间的键值存储 / 274. H 指数 / 275. H 指数 II

    981. 基于时间的键值存储 2021.7.10 每日一题 题目描述 创建一个基于时间的键值存储类 TimeMap,它支持下面两个操作:1. set(string key, string value, ...

  3. LeetCode Algorithm 274. H 指数

    274. H 指数 Ideas H指数表示的是有h篇论文被引用了至少h次. 我们可以将citations逆序排列,表示引用次数从高到底排列. 如果我们从前向后遍历数组,那么第i位上值v,就表示至少有i ...

  4. LeetCode 275. H指数 II(二分查找)

    1. 题目 给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列.编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数&q ...

  5. 274. H 指数----中等

    题目 给定一位研究者论文被引用次数的数组(被引用次数是非负整数).编写一个方法,计算出研究者的 h 指数. h 指数的定义:h 代表"高引用次数"(high citations), ...

  6. leetcode 275. H 指数 II

    给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照 升序排列 .编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数" ...

  7. 274. H 指数(中)

    思路 首先看到h个元素大于等于某个值,N-h个元素小于等于某个值,这显然是一个有序序列的特征,所以自然而然的想到先将数组排序: 将数组排序之后,对于给定的某个i,我们知道有citations.leng ...

  8. 二分答案——H指数(Leetcode 274)

    题目选自Leetcode 274. H指数 二分查找(答案)的简单题~ 理解题意 这个例子有点儿特殊,论文被引用了 3 次,篇数有 3 篇.再来看一个更一般的例子: 结论: 这条分割线越靠左边,说明被 ...

  9. 全球 Top 1000 计算机科学家 h 指数公布,中国顶尖计算机科学家人数进入前三

    整理 | Carol 出品 | CSDN(ID:CSDNnews) 近日,Guide2Research公布了2021年世界顶尖1000名计算机科学家排名.美国科学家登榜数量达614名,稳居上榜科学家数 ...

  10. 【数据结构与算法】之深入解析“H指数II”的求解思路与算法示例

    一.题目要求 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数,citations 已经按照升序排列,计算并返回该研究者的 h 指数. h ...

最新文章

  1. 问:一行Python代码到底能干多少事情?(一)
  2. c++读取图片_Pytorch读取,加载图像数据(一)
  3. Java操作Oracle
  4. 1006 换个格式输出整数(C语言)
  5. macOS “不能安装该软件,因为当前无法从软件更新服务器获得” 解决方法
  6. mysql的number范围_数据库number类型精度实用分析
  7. 龙卷风路径_ae龙卷风路径
  8. jersey restful 测试_Jersey实现Restful服务
  9. 四月一个晴朗的早晨,遇见一个百分之百的女孩
  10. 使用do文件进行仿真时出现“failed tofind ‘glbl’in hierarchical name ‘/glbl/GSR‘“的解决办法
  11. python关联分析库_使用Python进行数据关联分析
  12. android 厨房的使用方法,安卓ROM厨房定制工具使用教程
  13. 燕千云 YQCloud 数智化业务服务管理平台发布1.11版本
  14. Git详解之服务部署
  15. JDBC-使用Statement操作数据库的弊端
  16. 砼匠商砼ERP大屏展示效果图
  17. 非线性规划(凸规划,无约束最优化方法,约束最优化方法)
  18. IIR数字滤波器原理与应用
  19. 澳洲技术移民评分标准
  20. Vscode下载与配置(C语言)

热门文章

  1. 为知笔记怎么导入文件
  2. Linux开发运维常用命令
  3. MONGODB的压力测试
  4. codeforces 730 A Toda 2
  5. win10系统怎么安装ie11
  6. va_list原理及用法
  7. 中国古代30大名将VS100名将排行(按时间顺序)
  8. java怎么用蓝牙传_[技巧]蓝牙传输JAVA简易教程(图文及小常识)
  9. react 输入框 回车事件切换
  10. Linux系统的安装