14-H指數

給你一個整數數組 citations ,其中 citations[i] 表示研究者的第 i 篇論文被引用的次數。計算并返回該研究者的 h 指數。 根據維基百科上 h 指數的定義:h 代表“高引用次數” ,一名科研人員的 h 指數 是指他(她)至少發表了 h 篇論文,并且 至少 有 h 篇論文被引用次數大于等于 h 。如果 h 有多種可能的值,h 指數 是其中最大的那個。

方法一:排序法

思路

首先對引用次數數組進行降序排序,然后從最大的可能?h?指數(即數組的長度)開始遞減檢查,找到滿足條件(至少有?h?篇論文被引用次數大于等于?h)的最大?h?值。

代碼實現
function hIndex(citations: number[]): number {// 對引用次數數組進行降序排序citations.sort((a, b) => b - a);let h = 0;for (let i = 0; i < citations.length; i++) {if (citations[i] >= i + 1) {h = i + 1;} else {break;}}return h;
}// 示例調用
const citations = [3, 0, 6, 1, 5];
const h = hIndex(citations);
console.log("h 指數為:", h);
復雜度分析
  • 時間復雜度:O(n),主要是排序操作的時間開銷,常見排序算法的平均時間復雜度為?,其中??是數組的長度。
  • 空間復雜度:O(logn),這是排序算法通常需要的額外空間復雜度。

方法二:計數法

思路

先統計每個引用次數出現的論文數量,同時考慮引用次數大于等于數組長度的情況。然后從數組長度開始遞減檢查,累加滿足條件的論文數量,找到最大的?h?值。

代碼實現
function hIndex(citations: number[]): number {const n = citations.length;const count = new Array(n + 1).fill(0);// 統計每個引用次數出現的論文數量for (const citation of citations) {if (citation >= n) {count[n]++;} else {count[citation]++;}}let total = 0;// 從 n 開始遞減檢查for (let i = n; i >= 0; i--) {total += count[i];if (total >= i) {return i;}}return 0;
}// 示例調用
const citations2 = [3, 0, 6, 1, 5];
const h2 = hIndex(citations2);
console.log("h 指數為:", h2);
復雜度分析
  • 時間復雜度:O(n),只需要遍歷數組兩次,第一次統計引用次數,第二次尋找?h?指數,其中??是數組的長度。
  • 空間復雜度:O(n),主要用于存儲計數數組。

總結

排序法實現較為直觀,但時間復雜度較高;計數法時間復雜度較低,在處理大規模數據時性能更優。你可以根據實際情況選擇合適的方法。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70090.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70090.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70090.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于es6-module的語法

ES6&#xff08;ECMAScript 2015&#xff09;引入了模塊化的概念&#xff0c;旨在使 JavaScript 更加模塊化、可維護和可重用。ES6 模塊允許我們在不同的文件中組織和管理代碼&#xff0c;使得不同模塊之間的依賴關系更加清晰。 1. 導出&#xff08;Export&#xff09; 1.1 命…

Chrome多開終極形態解鎖!「窗口管理工具+IP隔離插件

Web3項目多開&#xff0c;繼ads指紋瀏覽器錢包被盜后&#xff0c;更多人采用原生chrome瀏覽器&#xff0c;當然對于新手&#xff0c;指紋瀏覽器每月成本也是一筆不小開支&#xff0c;今天逛Github發現了這樣一個解決方案&#xff0c;作者開發了窗口管理工具IP隔離插件&#xff…

DeepSeek核心算法解析:如何打造比肩ChatGPT的國產大模型

注&#xff1a;此文章內容均節選自充電了么創始人&#xff0c;CEO兼CTO陳敬雷老師的新書《自然語言處理原理與實戰》&#xff08;人工智能科學與技術叢書&#xff09;【陳敬雷編著】【清華大學出版社】 文章目錄 DeepSeek大模型技術系列一DeepSeek核心算法解析&#xff1a;如何…

arm 入坑筆記

1.開發環境&#xff08;IDE&#xff09;使用keil_5 (keil_mdk) 2.兩個手冊需要關注&#xff1a;用戶手冊&#xff08;編程需要&#xff09;&#xff0c;數據手冊&#xff08;硬件&#xff09; 3.32bit地址空間&#xff1a;0~2^324GB尋址空間及&#xff08;0-FFFF_FFFF&#x…

弱監督語義分割學習計劃(0)-計劃制定

經過與deepseek的一番討論和交流&#xff0c;DeepSeek為我設計了一個30天高強度學習計劃&#xff0c;重點聚焦弱監督/無監督語義分割在野外場景的應用&#xff0c;結合理論與實踐&#xff0c;并最終導向可落地的開源項目。以下是詳細計劃&#xff1a; 總體策略 優先級排序&…

vscode遠程報錯:Remote host key has changed,...

重裝了Ubuntu系統之后&#xff0c;由20.04改為22.04&#xff0c;再用vscode遠程&#xff0c;就出現了以上報錯。 親測有效的辦法 gedit ~/.ssh/known_hosts 打開這個配置文件 刪掉與之匹配的那一行&#xff0c;不知道刪哪一行的話&#xff0c;就打開第一行這個 /.ssh/confi…

Python - 爬蟲利器 - BeautifulSoup4常用 API

文章目錄 前言BeautifulSoup4 簡介主要特點&#xff1a;安裝方式: 常用 API1. 創建 BeautifulSoup 對象2. 查找標簽find(): 返回匹配的第一個元素find_all(): 返回所有匹配的元素列表select_one() & select(): CSS 選擇器 3. 訪問標簽內容text 屬性: 獲取標簽內純文本get_t…

DeepSeek驅動下的數據倉庫范式轉移:技術解耦、認知重構與治理演進

DeepSeek驅動下的數據倉庫范式轉移&#xff1a;技術解耦、認知重構與治理演進 ——基于多場景實證的架構革命研究 一、技術解耦&#xff1a;自動化編程范式的演進 1.1 語義驅動的ETL生成機制 在金融風控場景中&#xff0c;DeepSeek通過動態語法樹解析&#xff08;Dynamic Syn…

代碼隨想錄算法訓練營day38(補0206)

如果求組合數就是外層for循環遍歷物品&#xff0c;內層for遍歷背包。 如果求排列數就是外層for遍歷背包&#xff0c;內層for循環遍歷物品。 1.零錢兌換 題目 322. 零錢兌換 給你一個整數數組 coins &#xff0c;表示不同面額的硬幣&#xff1b;以及一個整數 amount &#xff0c…

golang channel底層實現?

底層數據實現 type hchan struct { qcount uint // 當前隊列中的元素數量 dataqsiz uint // 環形隊列的大小 buf unsafe.Pointer // 指向環形隊列的指針 elemsize uint16 // 元素大小 closed uint32 // chan…

圖的最小生成樹算法: Prim算法和Kruskal算法(C++)

上一節我們學習了最短路徑算法, 這一節來學習最小生成樹. 最小生成樹(Minimum Spanning Tree, MST)算法是圖論中的一種重要算法, 主要用于在加權無向圖中找到一棵生成樹, 使得這棵樹包含圖中的所有頂點, 并且所有邊的權重之和最小. 這樣的樹被稱為最小生成樹. 最小生成樹廣泛應…

矩陣系統源碼搭建的數據管理開發功能解析,支持OEM

一、引言 在矩陣系統中&#xff0c;數據猶如血液&#xff0c;貫穿整個系統的運行。高效的數據管理開發功能是確保矩陣系統穩定、可靠運行的關鍵&#xff0c;它涵蓋了數據的存儲、處理、安全等多個方面。本文將深入探討矩陣系統源碼搭建過程中數據管理功能的開發要點。 二、數據…

DeepSeek 助力 Vue 開發:打造絲滑的日期選擇器(Date Picker),未使用第三方插件

前言&#xff1a;哈嘍&#xff0c;大家好&#xff0c;今天給大家分享一篇文章&#xff01;并提供具體代碼幫助大家深入理解&#xff0c;徹底掌握&#xff01;創作不易&#xff0c;如果能幫助到大家或者給大家一些靈感和啟發&#xff0c;歡迎收藏關注哦 &#x1f495; 目錄 Deep…

操作系統知識點2

1.P&#xff0c;V操作可以實現進程同步&#xff0c;進程互斥&#xff0c;進程的前驅關系 2.先來先服務調度算法是不可搶占的算法 3.UNIX操作系統中&#xff0c;對文件系統中空閑區的管理通常采用成組鏈接法 4.對于FAT32文件系統&#xff0c;它采用的是鏈接結構 5.不同的I/O…

【個人開發】deepspeed+Llama-factory 本地數據多卡Lora微調【完整教程】

文章目錄 1.背景2.微調方式2.1 關鍵環境版本信息2.2 步驟2.2.1 下載llama-factory2.2.2 準備數據集2.2.3 微調模式2.2.3.1 zero-1微調2.2.3.2 zero-2微調2.2.3.3 zero-3微調2.2.3.4 單卡Lora微調 2.2.4 實驗2.2.4.1 實驗1&#xff1a;多GPU微調-zero12.2.4.2 實驗2&#xff1a;…

iOS 中使用 FFmpeg 進行音視頻處理

在 iOS 中使用 FFmpeg 進行音視頻處理,通常需要將 FFmpeg 的功能集成到項目中。由于 FFmpeg 是一個 C 庫,直接在 iOS 中使用需要進行一些配置和封裝。 1. 在 iOS 項目中集成 FFmpeg 方法 1:使用 FFmpeg 預編譯庫 下載 FFmpeg iOS 預編譯庫: 可以從以下項目中獲取預編譯的 …

Elasticsearch:將 Ollama 與推理 API 結合使用

作者&#xff1a;來自 Elastic Jeffrey Rengifo Ollama API 與 OpenAI API 兼容&#xff0c;因此將 Ollama 與 Elasticsearch 集成非常容易。 在本文中&#xff0c;我們將學習如何使用 Ollama 將本地模型連接到 Elasticsearch 推理模型&#xff0c;然后使用 Playground 向文檔提…

openGauss 3.0 數據庫在線實訓課程18:學習視圖管理

前提 我正在參加21天養成好習慣| 第二屆openGauss每日一練活動 課程詳見&#xff1a;openGauss 3.0.0數據庫在線實訓課程 學習目標 掌握openGauss視圖的管理&#xff1a;創建視圖、刪除視圖、查詢視圖的信息、修改視圖的信息。 課程作業 1.創建表&#xff0c;創建普通視圖…

騰訊云大模型知識引擎×DeepSeek賦能文旅

騰訊云大模型知識引擎DeepSeek賦能文旅 ——以合肥文旅為例的技術革新與實踐路徑 一、技術底座&#xff1a;知識引擎與DeepSeek的融合邏輯 騰訊云大模型知識引擎與DeepSeek模型的結合&#xff0c;本質上是**“知識庫檢索增強生成&#xff08;RAG&#xff09;實時聯網能力”**…

利用SkinMagic美化MFC應用界面

MFC(Microsoft Foundation Class)應用程序的界面設計風格通常比較保守,而且雖然MFC框架的控件功能強大且易于集成,但視覺效果較為樸素,缺乏現代感。尤其是MFC應用程序的設計往往以功能實現為核心,界面設計可能顯得較為簡潔甚至略顯呆板,用戶體驗可能不如現代應用程序流暢…