代碼隨想錄 棧與隊列 test 7

347. 前 K 個高頻元素 - 力扣(LeetCode)

首先想到哈希,用key來存元素,value來存出現次數,最后進行排序,時間復雜度約為o(nlogn)。由于只需求前k個,因此可以進行優化,利用堆來維護這k個元素,由于最終要剩下k個最大的元素,因此元素每次加入堆時,要將堆中最小元素彈出,因此要用小根堆來維護。

class Solution {
public:class MinHeapComparator {public:bool operator()(const pair<int, int>& lhs, const pair<int, int>& rhs) {return lhs.second > rhs.second; // 按頻率從小到大排序}
};vector<int> topKFrequent(vector<int>& nums, int k) {unordered_map<int, int> hash; //哈希表for(int i = 0; i < nums.size(); i++){hash[nums[i]]++;}priority_queue<pair<int,int>, vector<pair<int,int>>, MinHeapComparator> minheap;for(auto item : hash){//將哈希表元素加入堆中minheap.push(item);if(minheap.size() > k){minheap.pop();}}vector<int> res(k);//存前k個高頻元素for(int i = k-1; i >= 0; i--){//由于是小根堆,因此倒序存在res中res[i] = minheap.top().first;minheap.pop();}return res;}
};

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

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

相關文章

匯編實驗·子程序設計

一、實驗目的: 1.掌握匯編中子程序編寫方法 2.掌握程序傳遞參數的基本方法,返回值的方法。 3.掌握理解子程序(函數)調用的過程 二、實驗內容 1.編寫匯編語言子程序,實現C表達式SUM=X+Y的功能,具體要求: 1)函數的參數傳遞采用寄存器實現 2)函數的參數傳遞采用堆棧…

jmeter中對接口進行循環請求后獲取相應數據

1、工作中遇到一個場景就是對某個單一接口進行循環請求&#xff0c;并需要獲取每次請求后返回的相應數據&#xff1b; 2、首先就在jmeter對接口相關組件進行配置&#xff0c;需要組件有&#xff1a;循環控制器、CSV數據文件設置、計數器、訪問接口、HTTP信息頭管理器、正則表達…

trimesh 旋轉

trimesh.transformations.rotation_matrix(np.radians(rot_angle), rot_axis) np.radians(rot_angle)&#xff1a;將角度 rot_angle 轉換為弧度。trimesh 和大多數 3D 庫通常使用弧度來表示旋轉角度&#xff0c;而不是角度。 rot_axis&#xff1a;表示旋轉軸的向量。例如&…

Jetson Xavier NX 安裝 CUDA 支持的 PyTorch 指南

本指南將幫助開發者完成在 Jetson Xavier NX 上安裝 CUDA 支持的 PyTorch。 安裝方法 在 Jetson 上安裝 Pytorch 只有兩種方法。 一種是直接安裝他人已經編譯好的 PyTorch 輪子&#xff1b;一種是自己從頭開始開始構建 PyTorch 輪子并且安裝。 使用輪子安裝 可以從我的 Gi…

Ansible fetch模塊詳解:輕松從遠程主機抓取文件

在自動化運維的過程中&#xff0c;我們經常需要從遠程主機下載文件到本地&#xff0c;以便進行分析或備份。Ansible的fetch模塊正是為了滿足這一需求而設計的&#xff0c;它可以幫助我們輕松地從遠程主機獲取文件&#xff0c;并將其保存到本地指定的位置。在這篇文章中&#xf…

【AI論文】生成式視頻模型是否通過觀看視頻學習物理原理?

摘要&#xff1a;AI視頻生成領域正經歷一場革命&#xff0c;其質量和真實感在迅速提升。這些進步引發了一場激烈的科學辯論&#xff1a;視頻模型是否學習了能夠發現物理定律的“世界模型”&#xff0c;或者&#xff0c;它們僅僅是復雜的像素預測器&#xff0c;能夠在不理解現實…

論文速讀|Matrix-SSL:Matrix Information Theory for Self-Supervised Learning.ICML24

論文地址&#xff1a;Matrix Information Theory for Self-Supervised Learning 代碼地址&#xff1a;https://github.com/yifanzhang-pro/matrix-ssl bib引用&#xff1a; article{zhang2023matrix,title{Matrix Information Theory for Self-Supervised Learning},author{Zh…

視覺語言模型 (VLMs):跨模態智能的探索

文章目錄 一. VLMs 的重要性與挑戰&#xff1a;連接視覺與語言的橋梁 &#x1f309;二. VLMs 的核心訓練范式&#xff1a;四種主流策略 &#x1f5fa;?1. 對比訓練 (Contrastive Training)&#xff1a;拉近正例&#xff0c;推遠負例 ??2. 掩碼方法 (Masking)&#xff1a;重構…

數據結構——堆(介紹,堆的基本操作、堆排序)

我是一個計算機專業研0的學生卡蒙Camel&#x1f42b;&#x1f42b;&#x1f42b;&#xff08;剛保研&#xff09; 記錄每天學習過程&#xff08;主要學習Java、python、人工智能&#xff09;&#xff0c;總結知識點&#xff08;內容來自&#xff1a;自我總結網上借鑒&#xff0…

c++迷宮問題(migong)

今天的題目叫“迷宮問題(migong&#xff09;”&#xff0c;是“DFS深度優先搜索 遞歸”一類的。 題目描述 設有一個N*N(2<N<10)方格的迷宮&#xff0c;入口和出口分別在左上角和右上角。迷宮格子中 分別放0和1&#xff0c;0表示可通&#xff0c;1表示不能&#xff0c;入…

機器學習-線性回歸(簡單回歸、多元回歸)

這一篇文章&#xff0c;我們主要來理解一下&#xff0c;什么是線性回歸中的簡單回歸和多元回歸&#xff0c;順便掌握一下特征向量的概念。 一、簡單回歸 簡單回歸是線性回歸的一種最基本形式&#xff0c;它用于研究**一個自變量&#xff08;輸入&#xff09;與一個因變量&…

Git知識分享

一、理解git首先要理清楚下面五個概念&#xff1a; 1、工作區(git add 命令之前的樣子) 2、stash 暫存(暫存工作區和暫存區的更改) 3、暫存區(git add 命令之后的存儲區, 4、本地倉庫(git commit提交的位置) 5、遠程倉庫(git push提交的位置) 二、git常用命令&#xff1a; 1、g…

2024年度技術總結——MCU與MEMS和TOF應用實踐

引言 2024年對我來說是技術成長與突破的一年。在這一年里&#xff0c;我不僅在技術領域拓展了深度和廣度&#xff0c;還通過與客戶合作的實際項目&#xff0c;成功實現了從單一MCU到MCU、MEMS與TOF技術融合的跨越。這一過程中&#xff0c;我深刻認識到&#xff0c;技術的進步不…

一句話,我讓 AI 幫我做了個 P 圖網站!

每到過節&#xff0c;不少小伙伴都會給自己的頭像 P 個圖&#xff0c;加點兒裝飾。 比如圣誕節給自己頭上 P 個圣誕帽&#xff0c;國慶節 P 個小紅旗等等。這是一類比較簡單、需求量卻很大的 P 圖場景&#xff0c;也有很多現成的網站和小程序&#xff0c;能幫你快速完成這件事…

如何打造一個高并發系統?

今天和大家聊聊作為一個后端開發&#xff0c;在實際工作中&#xff0c;我們如何打造一個高并發的系統&#xff1f; 如下圖所示&#xff0c;大概有六個層面&#xff0c;我們結合具體的場景直播間簽到去一一細說。 一、前端 1、打散請求&#xff1a;即把用戶的接口分散一點去請求…

996引擎 - 前期準備-配置開發環境

996引擎 - 前期準備 官網搭建服務端、客戶端單機搭建 開發環境配置后端開發環境配置環境 前端開發環境配置環境 后端簡介前端簡介GUILayoutGUIExport 官網 996傳奇引擎官網 所有資料從官網首頁開始&#xff0c;多探索。 文檔&#xff1a; 996M2-服務端Lua 996M2-客戶端Lua 搭…

迅為RK3568開發板篇OpenHarmony實操HDF驅動控制LED-添加內核編譯

編譯內核時將該 HDF 驅動編譯到鏡像中&#xff0c;接下來編寫驅動編譯腳本 Makefile&#xff0c;代碼如下所示&#xff1a; 加入編譯體系&#xff0c;填加模塊目錄到 drivers/hdf_core/adapter/khdf/linux/Makefile 文件 更多內容可以關注&#xff1a;迅為RK3568開發板篇OpenHa…

生信軟件管家——conda vs pip

pip vs conda&#xff1a; 安裝過python包的人自然兩種管理軟件都用過&#xff0c; Pip install和Conda install在Python環境中用于安裝第三方庫和軟件包&#xff0c;但它們在多個方面存在顯著的區別 總的來說&#xff1a; pip是包管理軟件&#xff0c;conda既是包管理軟件&…

電子電氣工程會議

征稿主題 集中但不限于“電子電氣與信息工程”等其他相關主題。 電子、電氣工程&#xff1a; 電路與電子學、智能芯片、半導體器件、數字信號處理、遙感&#xff0c;雷達和傳感、射頻技術、微電子技術與電子信息、電子工程中的計算智能、電力領域的數據科學技術、智能電力設…

OpenVela 架構剖析:從內核到應用

目錄 一、總體架構概述 二、 內核層 2.1. OpenVela架構的內核基礎 2.2. 內核層的主要職責 2.3. OpenVela對NuttX的擴展與優化 三、系統服務層 2.1. 進程管理 2.2. 內存管理 2.3. 文件系統 2.4. 網絡通信 四、框架層 4.1. 模塊化設計 4.2. API接口 4.3. 組件和服務…