力扣 hot100 Day40

23. 合并 K 個升序鏈表

給你一個鏈表數組,每個鏈表都已經按升序排列。

請你將所有鏈表合并到一個升序鏈表中,返回合并后的鏈表。

//自己寫的垃圾
class Solution {
public:ListNode* mergeKLists(vector<ListNode*>& lists) {vector<int> record;int n = lists.size();for(int i=0;i<n;i++){while(lists[i]){record.push_back(lists[i]->val);lists[i]=lists[i]->next;}}if (record.empty()) {return nullptr;}sort(record.begin(),record.end());ListNode* res = new ListNode(record[0]);ListNode* cur = res;int len = record.size();for(int i=1;i<len;i++){cur->next = new ListNode(record[i]);cur = cur->next;}return res;}
};

沒有思考純粹取巧,放數組里排序后生成新的鏈表,回去等通知版

//抄的
class Solution {
public:ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {ListNode dummy(0);ListNode* tail = &dummy;while (l1 && l2) {if (l1->val < l2->val) {tail->next = l1;l1 = l1->next;} else {tail->next = l2;l2 = l2->next;}tail = tail->next;}tail->next = l1 ? l1 : l2;return dummy.next;}ListNode* mergeKLists(vector<ListNode*>& lists) {if (lists.empty()) return nullptr;int k = lists.size();while (k > 1) {for (int i = 0; i < k / 2; ++i) {lists[i] = mergeTwoLists(lists[i], lists[k - 1 - i]);}k = (k + 1) / 2;}return lists[0];}
};

面試該寫的算法,分治歸并算法

邏輯說起來也很簡單,兩兩合并的意思,為了方便循環,一頭一尾開始合并,然后逐次減半k值。

比較需要注意的就是k減半的計算,舉例子算算就好了

每層的時間復雜度都是 O(N),共有 log?K 層。??總時間復雜度 = O(N log K)??。

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

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

相關文章

validate CRI v1 image API for endpoint “unix:///run/containerd/containerd.sock“

1.現象pull image failed: Failed to exec command: sudo -E /bin/bash -c "env PATH$PATH crictl pull 172.23.123.117:8443/kubesphereio/pause:3.9"FATA[0000] validate service connection: validate CRI v1 image API for endpoint "unix:///run/container…

【會員專享數據】2013-2024年我國省市縣三級逐月SO?數值數據(Shp/Excel格式)

之前我們分享過2013-2024年全國范圍逐月SO?柵格數據&#xff08;可查看之前的文章獲悉詳情&#xff09;!該數據來源于韋晶博士、李占清教授團隊發布在國家青藏高原科學數據中心網站上的中國高分辨率高質量近地表空氣污染物數據集。很多小伙伴拿到數據后反饋柵格數據不太方便使…

銳捷網絡重磅發布RG-UNC CS網絡數字化平臺:四大核心能力重塑企業網絡管理新范式

近期&#xff0c;銳捷重磅發布RG-UNC網絡數字化平臺CS系列產品&#xff0c;通過全網統一融合管理、組網編排及自動化部署、便捷準入與訪問控制、全鏈業務保障與可視四大核心能力&#xff0c;重新定義企業網絡管理標準。置身于數字化轉型的進程中&#xff0c;您的網絡是否還在面…

使用虛擬機遠程登陸ensp模擬器交換機

本文使用軟件&#xff1a;VMware&#xff0c;eNSP&#xff0c;mobaxterm要登陸ensp里面的設備&#xff0c;需要使用到cloud下面我們先搭建如下拓撲&#xff1a;首先點擊cloud&#xff0c;端口一綁定UDP信息&#xff0c;添加&#xff1b;端口2綁定VMnet8網卡&#xff08;注意網段…

顯卡GPU的架構和工作原理

顯卡GPU&#xff08;圖形處理單元&#xff09;是專為并行計算和圖形處理設計的芯片&#xff0c;廣泛應用于游戲、科學計算、人工智能和數據中心等領域。以下詳細介紹GPU的架構和工作原理&#xff0c;涵蓋核心組件、計算流程和關鍵技術&#xff0c;盡量簡潔清晰。 一、GPU架構概…

AndFix、Robust 與 Tinker 熱修復框架深度對比

AndFix、Robust 與 Tinker 熱修復框架深度對比 在 Android 熱修復領域&#xff0c;AndFix、Robust 和 Tinker 是三種主流的解決方案&#xff0c;它們在實現原理、使用場景和限制條件上有顯著差異。以下是三者的詳細對比分析&#xff1a; 一、核心原理對比特性AndFixRobustTinke…

FlashAttention 快速安裝指南(避免長時間編譯)

簡介&#xff1a;FlashAttention 編譯太慢&#xff1f;本篇提供無需編譯的預編譯 wheel 快速安裝方案&#xff0c;適配多版本 Python、PyTorch 和 CUDA&#xff0c;極大節省部署時間&#xff01; &#x1f4a1; 背景介紹 FlashAttention 是由 DAO Labs 提出的一種高性能 atten…

openresty增加tcp端口轉發

openresty增加tcp端口轉發 1.配置文件nginx.conf 增加stream模塊 stream {include /etc/nginx/conf.d/stream/*.conf; }2.在nginx/conf/目錄下創建個stream文件夾 新增個10000.conf配置文件server {listen 10000;proxy_pass data_tcp; upstream data_tcp {server 10.10.10.2:10…

動態物體濾除算法

圖像層面&#xff1a;2D圖像分割反投影到3D點云濾除 基于分割 原理&#xff1a;通過2D語義分割&#xff08;如DeepLab、Mask R-CNN&#xff09;識別動態物體&#xff08;車輛、行人&#xff09;&#xff0c;將分割結果反投影至3D點云中濾除。優化方向&#xff1a; 結合時序一致…

Redisson是如何實現分布式鎖的?

Redisson 如何實現分布式鎖&#xff1f;&#xff08;核心原理與思考&#xff09; Redisson 是一個功能強大的 Redis 客戶端&#xff0c;它提供了許多分布式對象和服務&#xff0c;其中就包括分布式鎖。Redisson 的分布式鎖是基于 Redis 的 Lua 腳本實現的&#xff0c;這保證了操…

Java 導出word 實現餅狀圖導出--可編輯數據

&#x1f4ca; 支持圖表導出功能&#xff01; 支持將 柱狀圖、折線圖 圖表以 Word 文檔格式導出&#xff0c;并保留圖例、坐標軸、顏色、數據標簽等完整信息。 如需使用該功能&#xff0c;請私聊我&#xff0c;備注 “導出柱狀圖 / 折線圖”。 生成的效果圖如下&#xff1a;示例…

AI大模型平臺

在科技浪潮迅猛推進的當下&#xff0c;AI大模型平臺宛如一顆璀璨的新星&#xff0c;強勢闖入大眾視野&#xff0c;以其獨特的魅力和強大的功能&#xff0c;深刻地變革著我們生活與工作的每一處角落。從日常智能助手的貼心陪伴&#xff0c;到專業內容創作的靈感激發&#xff1b;…

C# Console App生成的 dll文件

在使用 dotnet 8.0 創建一個 C# console app后&#xff0c;執行完編譯操作&#xff0c;會發現除了生成可執行文件外&#xff0c;還生成一個 dll文件。 $ls ConsoleApp1 ConsoleApp1.dll ConsoleApp1.runtimeconfig.json ConsoleApp1.deps.json ConsoleApp1.pdb $ …

【AI】環境——深度學習cuda+pytorch配置

文章目錄關鍵組件及關系顯卡驅動GPU DriverCUDACUDA ToolkitcuDNNPytorch各組件版本選擇驅動程序CUDA查看驅動及CUDA的最大支持版本CUDA Toolkit選自定義安裝檢驗無法識別nvcccuDNNcondapip換源conda管理py包conda 換源查看列表、創建、克隆、激活、刪除conda包管理包安裝原則設…

觀眾信息設置與統計(視頻高級分析與統計功能)

Web播放器&#xff08;POLYV-html5-player&#xff09;支持設置觀眾信息參數&#xff0c;設置后在播放器上報的觀看日志中會附帶觀眾信息&#xff0c;這樣用戶就可以通過管理后臺的統計頁面或服務端API來查看特定觀眾的視頻觀看情況了。 一、觀眾信息設置 播放器設置觀眾信息參…

《數據庫》 MySQL庫表操作

1. SQL語句基礎 1.2 SQL簡介 SQL&#xff1a;結構化查詢語言(Structured Query Language)&#xff0c;在關系型數據庫上執行數據操作、數據檢索以及數據維護的標準語言。使用SQL語句&#xff0c;程序員和數據庫管理員可以完成如下的任務 改變數據庫的結構 更改系統的安全設置…

DSP的基礎平臺搭建

1、CCS6.0的安裝安裝步驟這里就不說了&#xff0c;只談論最可能遇到的問題&#xff1a;可以看到為需要關閉防火墻和掃描&#xff1b;在這里將其都關閉&#xff0c;然后可以斷掉網絡&#xff0c;關閉聯想管家&#xff0c;可能還是會出現防火墻提示&#xff0c;但是可以安裝&…

下一代防火墻-終端安全防護

實驗設備1、 山石網科&#xff08;hillstone&#xff09;系列下一代防火墻&#xff08;實訓平臺v1.0中hillstone設備&#xff09;2、 三層交換機一臺&#xff08;實訓平臺v1.0中cisco vios l2設備&#xff09;3、 二層交換機一臺&#xff08;實訓平臺v1.0中cisco iol switch設備…

Scala實現網頁數據采集示例

Scala 可以輕松實現簡單的數據采集任務&#xff0c;結合 Akka HTTP&#xff08;高效HTTP客戶端&#xff09;和 Jsoup&#xff08;HTML解析庫&#xff09;是常見方案。Scala因為受眾比較少&#xff0c;而且隨著這兩年python的熱門語言&#xff0c;更讓Scala不為人知&#xff0c;…

【IO復用】五種IO模型

文章目錄五種IO模型Linux設計哲學BIONIOAIOSIOIO多路復用五種IO模型 Linux設計哲學 在linux系統中&#xff0c;實際上所有的I/O設備都被抽象為了文件這個概念&#xff0c;一切皆文件&#xff0c;磁盤、網絡數據、終端&#xff0c;甚至進程間通信工具管道pipe等都被當做文件對…