首页 > 其他 > 详细

LeetCode 274. H-Index

时间:2016-03-19 22:37:43      阅读:234      评论:0      收藏:0      [点我收藏+]
 1 class Solution {
 2 public:
 3     int hIndex(vector<int>& citations) {
 4         sort(citations.begin(), citations.end());
 5         for(int i = 0; i < citations.size(); ++i){
 6             if(citations[i] >= citations.size() - i)
 7                 return citations.size() - i;
 8         }
 9         
10     }
11 };

N个数中有h个数>=于h,其余的<h。

在纸上写出后便易得,当N个数排序后,在citation[i]的右边(包括它本身),共有N-i个数,这些数均>=citation[i],即有N-i个数>=citation[i],使h=N-i,如果此时citation[i]>=N-i,那么必定有N-i个数>=N-i,此时N-i就是要求的h。因为h取最大值,所以i从0开始。

 

 

追加:

发现一个漏洞,当输入[0]时,照理来说是没法return的,但是不知为何LeetCode替我return了0……

正确代码:

 1 class Solution {
 2 public:
 3     int hIndex(vector<int>& citations) {
 4         sort(citations.begin(), citations.end());
 5         for(int i = 0; i < citations.size(); ++i){
 6             if(citations[i] >= citations.size() - i)
 7                 return citations.size() - i;
 8         }
 9         return 0;
10         
11     }
12 };

 

LeetCode 274. H-Index

原文:http://www.cnblogs.com/co0oder/p/5296417.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!