题目

Given an array of citations (each citation is a non-negative integer) of a researcher, write a function to compute the researcher’s h-index.

According to the definition of h-index on Wikipedia: “A scientist has index h if h of his/her N papers have at least h citations each, and the other N − h papers have no more than h citations each.”

For example, given citations = [3, 0, 6, 1, 5], which means the researcher has 5 papers in total and each of them had received 3, 0, 6, 1, 5 citations respectively. Since the researcher has 3 papers with at least 3 citations each and the remaining two with no more than 3 citations each, his h-index is 3.

Note: If there are several possible values for h, the maximum one is taken as the h-index.

分析

题目描述的要求如下:

给定一个整数序列 citations=[3,0,6,1,5],代表研究人员共有5篇论文,每个元素代表该论文的引用数量。从序列元素可以看出,该研究人员有至少3篇论文引用数量为>=3的,其余2篇论文引用数量不足3个引用,所以返回他的 h−index=3;

也就是说,我们找返回一个整数h,使得数组中至少h个元素值大小>=h,其n−h个元素值<h。

解决方法:

首先对序列排序,然后从大到小遍历数组,h值为从1到n,若元素满足num[i]>h,继续遍历,否则跳出循环,返回h即可。

AC代码

class Solution {
public:
int hIndex(vector<int>& citations) {
if (citations.empty())
return 0;
//对所给序列排序
sort(citations.begin(), citations.end()); int len = citations.size(),maxH = 0;
for (int i = len - 1; i >= 0; --i)
{
int h = len - i;
if (citations[i] >= h && h > maxH)
{
maxH = h;
}
else{
break;
}
}//for
return maxH;
}
};

GitHub测试程序源码

最新文章

  1. cat &lt;&lt;EOF用法
  2. Nginx提示502和504错误的解决方案
  3. ArcEngine 异常 :The index passed was not within the valid range.
  4. 阻止默认行为stopDefault
  5. Add 1G to a LVM on VMware
  6. IOS屏幕布局
  7. linux查看硬件信息及驱动设备相关整理
  8. 配置spring上下文
  9. java中如何忽略字符串中的转义字符--转载
  10. [LOJ 1027] Dangerous Maze
  11. zoj 3829 Known Notation
  12. hadoop2.2编程:使用MapReduce编程实例(转)
  13. block 做参数
  14. centos 修改shm
  15. C# MVC 自学笔记—5 添加模型
  16. “Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误 (转别人)
  17. teeporxy.go
  18. Spring Boot admin 2.0 详解
  19. laravel依赖注入 容器
  20. 16位和32位的80X86汇编语言的区别

热门文章

  1. STM32开关总中断
  2. TDH-search汇报理解
  3. memcache和iptables开启11211端口
  4. 客户端rsyslog配置文件详解
  5. text-transform字母大小写属性设置
  6. 有关在python中使用Redis(二)
  7. mui实现图片更换(暂未上传)
  8. iOS中转义后的html标签如何还原
  9. 对Yii 2.0模型rules的理解(load()无法正确装载数据)
  10. 如何清除SharePoint Server 配置缓存