LeetCode 精選:兩個已排序陣列的中位數 — 分治法尋找第 K 小元素
題目概述 給定兩個已排序的陣列 A 與 B,大小分別為 m 與 n,要求在 O(log(m+n)) 時間複雜度內找出合併後的中位數。這是 LeetCode 經典
LeetCode Merge k Sorted Lists:優先隊列(最小堆)歸併 K 個有序鏈表完整解析
題目描述 給定 k 個**升序**單鏈表頭節點數組 lists,將它們歸併為一個升序鏈表並返回頭節點。 範例: 輸入:lists = [[1,4,5],[1,3
C++ 繼承中函數覆蓋、隱藏、重載三大區別深度解析
前言 C++ 繼承體系中,同名函數在基類與派生類之間可能構成三種關係:**覆蓋**、**隱藏**、**重載**。混淆三者會導致多態失效、編譯錯誤或運行時驚喜。本
Linux 音頻工具 amixer、aplay、arecord 完整使用手冊:從控制項枚舉到錄播管道實戰
前言 ALSA (Advanced Linux Sound Architecture) 提供了三大核心命令列工具: amixer:混音器控制(音量、開關、路由
MFC CString 分割字串:CSplitStr 類完整使用指南與實戰範例
前言 在 MFC/ATL 開發中,CString 是核心字串類,但標準庫缺乏內建分割功能。CSplitStr 是一個輕量級工具類,支援**自定義分隔符**、**
HDU 1226 超級密碼:BFS 狀態壓縮求模 N 最小倍數完整解析
題目大意 給定十進制整數 N (0 ≤ N ≤ 5000)、進制 C (2 ≤ C ≤ 16)、允許數字集合 M 個(含 0~9, A~F)。求**最小**的
BZOJ 1036 樹鏈剖分:Heavy-Light Decomposition 核心原理與非遞迴實現完整教學
前言 樹鏈剖分 是解決**樹上路徑查詢/修改**問題的經典數據結構。將樹分解為若干條「重鏈」,配合線段樹/樹狀數組,可在 O(log² n) 時間內處理路徑最大
RQNOJ 02 開心的金明:0/1 背包問題動態規劃完整解析
題目大意 金明有 N 元預算,商場有 m 件商品。第 i 件商品價格 v[i],重要度 p[i](1~5)。每件商品**最多購買一件**(0/1 背包)。目標:
LeetCode Binary Tree Inorder Traversal:遞迴與迭代兩種實現完整解析
題目描述 給定一棵二元樹的根節點 root,返回其節點值的**中序遍歷**序列。 範例: 輸入:[1,null,2,3](表示樹:1 的右子為 2,2 的左子為
LeetCode Reverse Linked List II:單次遍歷原地反轉部分鏈表完整解析
題目描述 給定單鏈表頭節點 head 及兩個位置 m、n(1 ≤ m ≤ n ≤ 鏈表長度),**原地**、**單次遍歷**反轉第 m 到第 n 個節點,返回新
HDU 1026 Ignatius and the Princess I:Dijkstra + 優先隊列尋找最短路徑完整解析
題目大意 給定一個 N × M 的網格地圖,起點 (0,0),終點 (N-1, M-1)。每秒可向上下左右移動一格。進入格子若為數字 k,需額外停留 k 秒(視
C++ const 關鍵字完整用法總結與最佳實踐指南
前言 在 C++ 程式設計中,const 關鍵字是提升程式碼健壯性、可讀性與效能的核心工具之一。它不僅能定義常量,還能修飾指標、引用、函數參數、返回值以及類成員
Objective-C 異常處理、單例模式、Category 擴展與 Foundation 基礎全攻略
一、異常處理:@try / @catch / @finally / @throw OC 異常機制類似 Java/C++,但僅用於程序錯誤(如數組越界、非法參數)
LeetCode Unique Binary Search Trees II:生成所有結構不同的 BST 遞歸構造法
問題描述 給定 n,生成所有鍵值為 1..n 的結構不同的二叉搜索樹 (BST)。返回所有可能的樹根節點列表。 例:n=3 → 5 棵樹(卡特蘭數 C₃=5)。
C 語言 assert 斷言宏深度解析:實現原理、使用禁忌與面試必考點
本質:編譯期宏,非運行期函數 assert(expr) 在 <assert.h> 中定義為宏。僅在 Debug 構建 (未定義 NDEBUG) 時生
LeetCode Interleaving String:二維動態規劃判斷字符串交織構成
問題描述 給定三字符串 s1, s2, s3,判斷 s3 是否由 s1 和 s2 交織 構成。交織定義:保持 s1 和 s2 內部字符相對順序,交替取字符拼成
C++ 指針算術運算深度解析:類型決定步長、多級指針陷阱與最佳實踐
核心規則:指針 + 整數 = 指針 ptr + n 將指針向高地址移動 n × sizeof(指向類型) 字節。指針類型決定步長,與指向的實際內存佈局無關。
HDU 1180 詭異的樓梯:時間相關圖 BFS 最短路詳解
問題建模 M×N 網格(≤20×20),每分鐘移動一格(上下左右)。 樓梯格子:|(初始豎向)、-(初始橫向),每分鐘翻轉方向。 豎向樓梯:只能上