C++ STL Stack 容器詳解:push、pop 與 top 操作實戰
C++ STL Stack 容器詳解:push、pop 與 top 操作實戰 在 C++ 標準模板庫(STL)中,stack 是一個後進先出(LIFO)的容器適
多叉樹轉二叉樹:左孩子右兄弟法與中序遍歷
多叉樹與二叉樹轉換 問題描述 輸入多叉樹節點數 n (≤300) 及各節點父親編碼(父親為 0 者為根)。輸出轉換後二叉樹的中序遍歷序列。 轉換規則:左孩子右兄
Visual Studio 調試 Linux 程式:GDB 擴展實戰
Visual Studio 調試 Linux 程式 微軟開源步伐加快,Visual Studio 現已支援遠端調試 Linux 程式。透過 VS GDB Deb
POJ 2761 Feed the Dogs:Treap 區間第 K 小
POJ 2761 Feed the Dogs 題目大意 有 n 隻狗排成一列,每隻狗有「漂亮值」(值越小越漂亮)。進行 m 次餵食,每次給定區間 [i, j]
LeetCode 155. 最小棧:常數時間獲取最小值
LeetCode 155. 最小棧 題目描述 設計一個支援 push、pop、top、getMin 操作的棧,要求 getMin 時間複雜度為 O(1)。 解題
LeetCode 240. 搜索二維矩陣 II:高效查找算法
LeetCode 240. 搜索二維矩陣 II 題目描述 編寫高效算法在 m x n 矩陣中搜索目標值。矩陣特性: 每行元素從左到右升序排列。 每列元素從上到
LeetCode 143. 重排鏈表:原地交錯合併
LeetCode 143. 重排鏈表 題目描述 給定單鏈表 L: L0→L1→…→Ln-1→Ln,將其重排為 L0→Ln→L1→Ln-1→L2→Ln-2→…。要
LeetCode 227. 基本計算器 II:字串表達式求值
LeetCode 227. 基本計算器 II 題目描述 實現一個基本計算器,計算簡單表達式字串的值。表達式僅包含非負整數、+、-、*、/ 運算子及空格。整數除法
C++ Primer 筆記(二):深入理解命名空間
C++ Primer 筆記(二):深入理解命名空間 在大型專案開發中,程式碼通常被拆分為多個模組,由多人協作完成,且不可避免地會引入第三方函式庫。各模組與函式庫
對象池自動回收深度思考 — unique_ptr 自定義刪除器實現 RAII 模式
背景與痛點 對象池預創建對象供復用,避免頻繁創建銷毀開銷。傳統模式需手動 release() 歸還,**易忘、洩漏、異常不安全**。 核心思路:智能指針自定義
Windows 編程實踐 (四) — C++ 多維數組指針完全解析
多維數組與指針的本質關係 C/C++ 中多維數組在內存中是**連續存儲**的 (行優先)。指針運算遵循數組類型的**步長**規則。理解「數組名退化為指針」與「指
HDU 4034 Graph — 從最短路矩陣重構原圖最少邊數 — Floyd 判斷冗餘邊
題目大意 給定 N (≤ 100) 個節點的**有向圖**所有點對**最短路長度**矩陣。判斷是否存在對應原圖,若存在求**最少邊數**;否則輸出 imposs
POJ 1947 / Tree — 樹上點對距離 ≤ k 計數 — 點分治 (Divide & Conquer on Tree) 經典模板
題目大意 給定 N (≤ 10000) 節點的樹,邊有正權重 (< 1001)。求節點對 (u, v) 中距離 ≤ K 的對數。多測試用例。 核心算法:點分治
C++ Primer 筆記 (三) — std::string 完整操作手冊
string 基礎 std::string 定義於 <string>,屬 std 命名空間。本質是 basic_string<char>
哈夫曼編碼總長度計算 - 優先隊列(最小堆)O(n log n) 解法
哈夫曼編碼總長度計算 - 優先隊列(最小堆)O(n log n) 解法 題目大意 給定字串(僅大小寫字母),構建哈夫曼樹,輸出**所有字元編碼總長度**(即 Σ
貪心算法經典:找零錢問題 — 面值 1/5/10/50/100/500 最少硬幣數
題目描述 收銀台有面值 1、5、10、50、100、500 元硬幣,各 A_i 枚。需找零 A 元,**最少用多少枚硬幣**?保證至少存在一種方案。多測試用例。
C++ 對象池自動回收技術深度解析 — 基於 unique_ptr 自定義刪除器實現
對象池模式回顧 對象池預先創建對象,借用歸還復用,避免頻繁創建銷毀開銷。適用於:對象創建昂貴 (資源佔用大、初始化複雜)、使用頻率高、生命周期短的場景。 傳統實