国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

算法:二分法---尋找H指數

這篇具有很好參考價值的文章主要介紹了算法:二分法---尋找H指數。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

算法:二分法---尋找H指數,算法,算法,排序算法,java,數據結構,二分查找,排序,數組


1、題目:

給你一個整數數組 citations ,其中 citations[i] 表示研究者的第 i 篇論文被引用的次數。計算并返回該研究者的 h 指數。

根據維基百科上 h 指數的定義:h 代表“高引用次數” ,一名科研人員的 h 指數 是指他(她)至少發(fā)表了 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<right){
            // +1 防止死循環(huán)
            mid=(left+right+1)>>1;
            cnt=0;
            for(int i=0;i<citations.length;i++){
                if(citations[i]>=mid){
                    cnt++;
                }
            }
            if(cnt>=mid){
                // 要找的答案在 [mid,right] 區(qū)間內
                left=mid;
            }else{
                // 要找的答案在 [0,mid) 區(qū)間內
                right=mid-1;
            }
        }
        return left;
    }
}

4、復雜度分析:

  • 時間復雜度:O(nlogn),其中 n 為數組 citations 的長度。需要進行 logn 次二分搜索,每次二分搜索需要遍歷數組 citations 一次。
    空間復雜度:O(1),只需要常數個變量來進行二分搜索。

5、總結:

二分法使用常見場景 ==> 搜索有序列表:當你需要在一個有序列表(如數組)中查找某個特定元素時,可以使用二分法.


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

算法:二分法---尋找H指數,算法,算法,排序算法,java,數據結構,二分查找,排序,數組

解題思路:升序后判斷當前的數是否大于其對應的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++) {
            if (citations[i] >= length - i) {
                return length - i;
            }
        }
        return 0;
    }
}




如果本文對你有幫助的話記得給一樂點個贊哦,感謝!文章來源地址http://www.zghlxwxcb.cn/news/detail-718824.html

到了這里,關于算法:二分法---尋找H指數的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【算法】【算法雜談】旋轉數組的二分法查找

    【算法】【算法雜談】旋轉數組的二分法查找

    當前所有算法都使用測試用例運行過,但是不保證100%的測試用例,如果存在問題務必聯系批評指正~ 在此感謝左大神讓我對算法有了新的感悟認識! 原問題 給定一個從小到大有序的數組,該數組存在重復的數,并且該數組可能經過旋轉處理,如arr = [1,2,3,4,5,6,7]代表數組未旋

    2024年02月06日
    瀏覽(32)
  • 算法刷題營【Day1】:: 704.二分查找:二分法詳談與相關刷題

    算法刷題營【Day1】:: 704.二分查找:二分法詳談與相關刷題

    本內容是筆者結合《代碼隨想錄》總結所得,記錄學習過程,分享知識! 目錄: 1. 開篇例題:704. 二分查找 2. 題解參考(模板寫法) - - 2.1 方法一:左閉右閉寫法 - - 2.2 方法二:左閉右開寫法 3. 模板解釋:左閉右閉 - - 3.1 區(qū)間劃定 - - 3.2 left 、right 移動問題 - - 3.3 循環(huán)條件

    2024年02月04日
    瀏覽(27)
  • 初階算法(3):二分法的講解與實現(C語言),以及二分不止光在有序數組中的應用

    ?第一章?初階算法(1):通過簡單的排序算法來認識時間復雜度 ?第二章?初階算法(2):進行詳細地介紹插入排序的細節(jié)和時間復雜度 ?第三章 初階算法(3):二分法的講解與實現,以及二分不止光在有序數組中的應用 目錄 系列文章目錄 前言 一、二分法的講解與實現

    2024年02月14日
    瀏覽(24)
  • 276.【華為OD機試】矩陣匹配(二分法—Java&Python&C++&JS實現)

    ??點擊這里可直接跳轉到本專欄,可查閱頂置最新的華為OD機試寶典~ 本專欄所有題目均包含優(yōu)質解題思路,高質量解題代碼(JavaPythonC++JS分別實現),詳細代碼講解,助你深入學習,深度掌握!

    2024年04月29日
    瀏覽(18)
  • 二分法簡單題

    2024年01月24日
    瀏覽(27)
  • 二分法相關使用

    二分法相關使用

    在線OJ:704. 二分查找 有序數組下的二分思路如下: 由于這里是有序數組, 我們可以可以先得到中點位置, 中點可以把數組分為左右兩邊; 如果中點位置的值等于目標值, 直接返回中點位置; 如果中點位置的值小于目標值, 則去數組中點左側按同樣的方式查找; 如果中點位置的值大

    2024年02月07日
    瀏覽(17)
  • 初探二分法

    初探二分法

    智能化校園:深入探討云端管理系統(tǒng)設計與實現(一) 智能化校園:深入探討云端管理系統(tǒng)設計與實現(二) 題目:給定一個 n 個元素有序的(升序)整型數組 nums 和一個目標值 target ,寫一個函數搜索 nums 中的 target,如果目標值存在返回下標,否則返回 -1。 提示: 你可以

    2024年01月25日
    瀏覽(22)
  • 二分法MATLAB代碼

    二分法MATLAB代碼

    本質是通過不斷進行區(qū)間壓縮來獲取函數零點。 二分法的終止條件:區(qū)間長度小于等于精度要求 。 流程: 如下圖所示:

    2024年02月05日
    瀏覽(23)
  • 【二分查找】一文帶你掌握二分法 (附萬能模板)

    【二分查找】一文帶你掌握二分法 (附萬能模板)

    一、簡介 哪怕沒有學過編程的同學,也許不知道二分法這個名字,但也一定接觸過它的核心思想。不了解的同學也沒關系,我用一句話就能概括出它的精髓: 將一個區(qū)間一分為二,每次都舍棄其中的一部分。 二分法能夠極大地降低我們在解決問題時的時間復雜度。假如你要

    2024年01月19日
    瀏覽(23)
  • 牛頓法、割線法、二分法

    牛頓法、割線法、二分法

    牛頓法求解非線性方程組 割線法求解非線性方程組 二分法求解根號3 ?另外,今天上機課寫程序時,發(fā)現不同的起始點可以收斂到不同的零點。也許這是一個新的值得研究的地方。 看來,計算數學也是這樣,光聽理論無法實現大的突破,也沒法產生好的想法,必須在實踐應用

    2024年02月05日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包