河北网站建设哪家好,企业软文,个人网站建设基本教程,黑龙江建设网证书查询官网题目链接#xff0c;描述
https://www.lintcode.com/problem/1304
给定一个研究员的引用量数组#xff08;每个引用量都是一个非负整数#xff09;。请计算该研究员的H指数。一个研究者的H指数为h#xff0c;意味着他的论文中#xff0c;有h篇有至少有h个引用量。如果有…题目链接描述
https://www.lintcode.com/problem/1304
给定一个研究员的引用量数组每个引用量都是一个非负整数。请计算该研究员的H指数。一个研究者的H指数为h意味着他的论文中有h篇有至少有h个引用量。如果有很多可取的h则最大的作为h指数。样例
样例1输入: citations [3, 0, 6, 1, 5]
输出: 3
解释:
研究者有5篇论文每一篇的引用量为30615。因为研究者有三篇论文至少有3个引用而剩下两篇则引用不足3次所以他的H指数为3
样例2输入: citations [5, 5, 5, 5, 5]
输出: 5
解释:
研究者有5篇论文每一篇的引用量为5, 5, 5, 5, 5。因为研究者有5篇论文至少有5个引用所以他的H指数为5思路 本意需要理解个人觉得不需要用二分什么的先排序再直接进行循环取citations[i]length-i即返回。注意取得符合条件的第一个数时就要返回因为在这个数后面的肯定是都成立的。参考代码
public class Solution {/*** param citations: a list of integers* return: return a integer*/public int hIndex(int[] citations) {/*本意需要理解个人觉得不需要用二分什么的先排序再直接进行循环取citations[i]length-i即返回。注意取得符合条件的第一个数时就要返回因为在这个数后面的肯定是都成立的。*//*//下面的答案也行Arrays.sort(citations);int h 0,icitations.length-1;while (i0 citations[i]h){h;i--;}*/int n citations.length;Arrays.sort(citations);int h 0;for (int i 0; i n ; i) {if(citations[i] n-i){hn-i;return h;}}return 0;}
}