算法:二分法---寻找H指数

02-29 阅读 0评论

算法:二分法---寻找H指数

算法:二分法---寻找H指数,算法:二分法---寻找H指数,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,空间,要求,第2张
(图片来源网络,侵删)

1、题目:

给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。

根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发表了 h 篇论文,并且每篇论文 至少 被引用 h 次。如果 h 有多种可能的值,h 指数 是其中最大的那个。

2、分析特点:

  • 题目要求:寻找最大值,citations[i] 表示研究者的第 i 篇论文被引用的次数 ==> 排序之后,使用二分法.
  • 二分法使用常见场景 ==> 搜索有序列表:当你需要在一个有序列表(如数组)中查找某个特定元素时,可以使用二分法.

    3、代码:

    class Solution {
        public int hIndex(int[] citations) {
            int left=0,right=citations.length;
            int mid=0,cnt=0;
            while(left
                // +1 防止死循环
                mid=(left+right+1)>1;
                cnt=0;
                for(int i=0;i
                    if(citations[i]=mid){
                        cnt++;
                    }
                }
                if(cnt>=mid){
                    // 要找的答案在 [mid,right] 区间内
                    left=mid;
                }else{
                    // 要找的答案在 [0,mid) 区间内
                    right=mid-1;
                }
            }
            return left;
        }
    }
    

    4、复杂度分析:

    • 时间复杂度:O(nlogn),其中 n 为数组 citations 的长度。需要进行 logn 次二分搜索,每次二分搜索需要遍历数组 citations 一次。

      空间复杂度:O(1),只需要常数个变量来进行二分搜索。

      5、总结:

      二分法使用常见场景 ==> 搜索有序列表:当你需要在一个有序列表(如数组)中查找某个特定元素时,可以使用二分法.

      6、其他解决方法:排序法

      算法:二分法---寻找H指数

      解题思路:升序后判断当前的数是否大于其对应的h值就行了

      ■ 代码:
      import java.util.Arrays;
      class Solution {
          public int hIndex(int[] citations) {
              Arrays.sort(citations);
              int length = citations.length;
              for (int i = 0; i = length - i) {
                      return length - i;
                  }
              }
              return 0;
          }
      }
      




      算法:二分法---寻找H指数,算法:二分法---寻找H指数,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,空间,要求,第4张
      (图片来源网络,侵删)

      如果本文对你有帮助的话记得给一乐点个赞哦,感谢!

      算法:二分法---寻找H指数,算法:二分法---寻找H指数,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,空间,要求,第5张
      (图片来源网络,侵删)

免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,人围观)

还没有评论,来说两句吧...

目录[+]