LeetCode 274 H-Index
2015-12-14 09:23
239 查看
题目描述
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.
Hint:
An easy approach is to sort the array first.
What are the possible values of h-index?
A faster approach is to use extra space.
Credits:
Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
分析
题目描述不清,实际上,H-Index的核心计算方法是:[code] 1、将某作者的所有文章的引用频次按照从大到小的位置排列 2、从前到后,找到最后一个满足条件的位置,其条件为:此位置是数组的第x个,其值为y,必须满足 y >= x;
代码
[code] public int hIndex(int[] citations) { if (citations == null) { return 0; } int h = 0, n = citations.length; Arrays.sort(citations); for (int i = n - 1; i >= 0; i--) { if (citations[i] >= n - i) { h = n - i; } else { break; } } return h; }
相关文章推荐
- IOS图像处理之 coreImage.
- Hbuilder开发HTML5 APP之打开新页面
- MapServer 之 绘制地图图例
- Cordova系列之一开发环境搭建(windows)
- 关于APP开机自启动的简单实现
- 在项目里交叉使用Swift和OC
- js函数的作用域与this指向
- 地图相关
- DDOS攻击原理,及通过iptables预防syn洪水攻击
- MVC前端控制前图解
- Apache 基金会宣布 Apache Kylin 成为顶级项目
- Numeric Character Reference转NSString
- 如何让app多个页面只用一个地图实例
- 黑马程序员---Java基础---内部类
- Gaussian discriminant analysis
- VC++实现双屏显示同一内容
- 不宜抢反弹的十种高危状态
- SQL Server中角色与权限管理
- [转载]Linux系统中休眠的理解
- 尽量不要在viewWillDisappear:方法中移除通知