274. H-Index

这道题让我们求H指数,这个质数是用来衡量研究人员的学术水平的质数,定义为一个人的学术文章有n篇分别被引用了n次,那么H指数就是n.

用桶排序,按引用数从后往前计算论文数量,当论文数 >= 当前引用下标时。满足至少有N篇论文分别被引用了n次。

class Solution {
public int hIndex(int[] citations) {
int n = citations.length;
int[] bucket = new int[n + 1];
for(int c : citations){
if(c >= n){
bucket[n]++;
}else{
bucket[c]++;
}
}
int count = 0;
for(int i = n; i >= 0; i--){
count += bucket[i];
if(count >= i){
return i;
}
}
return 0;
}
}

275. H-Index II

有len - mid篇文章,每篇文章至少有 citations[ mid ] 次引用。

1. len - mid == citations[ mid ], 符合

2. len - mid > citations[ mid ] , 文章数 》 引用次数,不符合定义,往右搜索

3. len - mid < citations[ mid ],  文章数 《 引用次数,符合定义,但说明可能有更多的文章每篇被引用citations[ mid ] 次, 往左搜索。

len - (right + 1 ) = 总文章数 - 不符合定义的文章数。

class Solution {
public int hIndex(int[] citations) {
int len = citations.length;
int left = 0, right = len - 1;
while(left <= right){
int mid = left + (right - left) / 2;
if(len - mid == citations[mid]){
return citations[mid];
} else if( len - mid > citations[mid]){
left = mid + 1;
}else{
right = mid - 1;
}
}
return len - (right + 1);
}
}

最新文章

  1. 怎么清除file控件的文件路径
  2. sql server 2012 自定义聚合函数(MAX_O3_8HOUR_ND) 计算最大的臭氧8小时滑动平均值
  3. php 通过PATH_SEPARATOR判断当前服务器系统类型
  4. mybatis的一对多映射
  5. 将java应用程序打包成可执行文件
  6. C#后台验证身份证号码的一个方法
  7. hdu1074 Doing Homework(状态压缩DP Y=Y)
  8. appium 并发测试
  9. cf493B Vasya and Wrestling
  10. Ecshop导航栏标题栏的伪静态设置
  11. 单击dbgrid列标题排序 升降序
  12. kickstart部署及使用
  13. ios 一步一步学会自定义地图吹出框(CalloutView)--&gt;(百度地图,高德地图,google地图)
  14. zabbix监控URL
  15. PC端的鼠标拖拽滑动
  16. Kettle入门--作业和转换的使用
  17. (转)mysql原生在线ddl和pt-osc原理解析
  18. Windows系统php5.6安装Imagick库
  19. 利用StringUtils可以避免空指针问题
  20. array2json

热门文章

  1. thinkPHP5 添加新模块
  2. cocos2dx 3.17(Windows下) 接入skynet和sprotol
  3. 传统码头建设企业:Azure DevOps Server 流水线技术沟通
  4. 解决 ubuntu 开机卡死在输入密码界面 &amp;&amp; 键盘鼠标失灵!!
  5. jQuery 源码解析(七) jQuery对象和DOM对象的互相转换
  6. Linux 搭建邮件服务器
  7. JDBC与Druid简单介绍及Druid与MyBatis连接数据库
  8. 休谟:《人性论》一书中提出的要重视&quot;是&quot;与&quot;应该&quot;的区别
  9. 一篇文章,带你玩转MVVM,Dapper,AutoMapper
  10. .NET 跨域问题解决