LeetCode:H-Index
来源:互联网 发布:淘宝退款太多被警告 编辑:程序博客网 时间:2024/06/09 18:12
H-Index
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.
Subscribe to see which companies asked this question
思路:
首先阐述一个事实:h-index不超过L(即h-index <= L,L是citations数组长度);当h-index == L时,citations所有值都不小于L;
创建一个counts数组,存储citation == index(index<L时),当index>=L时,存入counts[L];
如有数组citations = [3,0,7,1,5],L = 5;
创建counts[L+1]数组,存储方式为:
if(citation == index) counts[index]++;
if(citation >= L) counts[L]++;
最后,从右向左遍历counts,并用ans变量记录个数;当ans>=i时,即得解。
java code:
public class Solution { public int hIndex(int[] citations) { int L = citations.length; int[] counts = new int[L+1]; for(int i:citations) { if(i>=L) counts[L]++; else counts[i]++; } int ans = 0; for(int i=L;i>=0;i--) { ans += counts[i]; if(ans>=i) return i; } return 0; }}
- Leetcode 274 : H-index
- leetcode H-Index
- [leetcode][sort] H-Index
- 【leetCode】H-Index
- Leetcode: H-Index
- Leetcode: H-Index II
- leetcode 274: H-Index
- [leetcode] 274.H-Index
- leetcode 之 H-index
- LeetCode: H-Index
- leetcode H-index 2
- Leetcode: H-Index
- Leetcode: H-Index II
- leetcode: H-Index
- [LeetCode 274] H-index
- [LeetCode]H-Index
- [LeetCode]H-Index II
- H-Index -- leetcode
- numpy之矩阵
- jquery的$.each()的用法以及参数的实际意义
- 认识HTML5的WebSocket
- JSON详解
- C#多线程之二:ManualResetEvent和AutoResetEvent
- LeetCode:H-Index
- JTA入门:http://blog.chinaunix.net/uid-122937-id-3793220.html
- 【转】第六届蓝桥杯决赛 第二题 完美正方形 (线段树)
- 学生信息管理系统优化
- shell常用操作
- 第1课:通过案例对SparkStreaming 透彻理解三板斧之一
- 多态下的方法调用
- js循环json字符串
- 安卓自定义view的步骤