LeetCode Search a 2D Matrix:二分查找兩次定位目標值
題目特性 矩陣 m x n 滿足: 每行左到右遞增。 上一行末元素。 等價於將矩陣展平為一維有序數組,但直接二維二分更直觀。 算法步驟 提取每行首元素
C++ 寫時拷貝 Copy-on-Write (COW) 習語詳解:智能指針實現、陷阱與改進方案
COW 核心動機 1 才深拷貝。類似「延遲初始化」思想。 基礎實現:CowPtr<T> 封裝 shared_ptr template <c
MFC 對話框鍵盤消息處理全攻略:PreTranslateMessage、WM_KEYDOWN/UP/SYSKEY 與組合鍵檢測
為什麼 MFC 對話框難以響應鍵盤? 消息循環移除了 TranslateAccelerator,無法響應加速鍵(熱鍵)。 控件擁有焦點,鍵盤消息被子窗口截獲。
POJ 1200 Crazy Search:哈希入門經典——子串編碼與去重統計
題目描述 給定長度 n、字符集大小 nc 及一個由 nc 種字符組成的字符串,求長度為 n 的**不同**子串數量。字符串長度 ≤ 2000 萬,需線性或近線性
VC++ 迭代器完全指南:iterator、const_iterator 與 const iterator 的區別與用法
三種迭代器類型對比 類型可修改元素可移動迭代器典型用途 iterator是是遍歷並修改容器元素 const_iterator否(只讀)是只讀遍歷、作為 con
插入排序算法完整實現:數組、Vector 與迭代器三種形式詳解
插入排序核心邏輯 原地排序(in-place),時間複雜度 O(n²),穩定,適合小規模或近乎有序數據。偽代碼: key: A[i+1] =
LeetCode Partition List — 鏈表分區雙指針法
LeetCode 86. Partition List — 鏈表分區 O(n) 時間 O(1) 空間 題目:給定鏈表頭節點和值 `x`,重排使所有 `= x`
LeetCode House Robber II — 環形房屋動態規劃
LeetCode 213. House Robber II — 環形動態規劃 題目:房屋圍成環,首尾相連不能同時偷竊。求最大金額。擴展自 House Robbe
LeetCode Move Zeroes:雙指針原地移動零元素保持相對順序
問題描述 將數組中所有 0 移至末尾,非零元素相對順序不變。要求原地操作、最小化操作次數。例如 [0,1,0,3,12] → [1,3,12,0,0]。 雙指
LeetCode Word Pattern:雙向映射驗證模式匹配
問題描述 給定模式串 pattern (如 abba) 和字符串 str (如 dog cat cat dog),判斷 str 是否遵循 pattern 的單詞
LeetCode Find the Duplicate Number:Floyd 判圈算法與二分查找雙解法
問題約束與轉化 數組長度 n+1,元素範圍 [1, n],必有重複。要求:只讀、O(1) 空間、< O(n²) 時間。將數組視為鏈表:索引 i 指向 nums[
LeetCode Course Schedule:拓撲排序判斷課程依賴是否存在環
問題建模 n 門課程 (0~n-1),依賴關係 prerequisites[i] = [a, b] 表示修 a 前必須修 b。構建有向圖:b → a。問題轉化為
LeetCode Minimum Window Substring:滑動窗口 + 雙指針 O(n) 完美解法
問題重述 給定字符串 S 和 T,找出 S 中包含 T 所有字符的最短子串。要求 O(n) 時間複雜度。例如 S=ADOBECODEBANC, T=ABC →
new 表達式初始化語義差異:new T vs new T() 導致跨平台崩潰案例分析
崩潰案例回顧 struct Sample { int* ptr[4][4]; }; Sample* p = new Sample[10]; // 未初始化 p
C/C++ for 循環語句詳解:語法、流程圖解與經典求和範例
for 循環語法結構 for (初始化; 條件; 遞增) { // 循環體 } 執行流程圖解 初始化:僅執行一次,通常 int i=0 條件判斷:每
Visual Studio 2010/2015/2019 代碼格式化快捷鍵:Ctrl+K, Ctrl+D / Ctrl+K, Ctrl+F
標準格式化快捷鍵 操作快捷鍵說明 格式化整個文檔Ctrl+K, Ctrl+D對當前文件所有代碼應用格式化規則 格式化選中區域Ctrl+K, Ctrl+F僅格式
Qt5 學習之路(二):首個程序 Hello World 深度解析與堆棧對象管理
最小 Qt 程序結構 #include #include int main(int argc, char** argv) { QApplicati
boost::shared_from_this 進階封裝:禁止棧上構造、統一工廠創建、虛繼承防菱形
痛點分析 enable_shared_from_this 要求對象由 shared_ptr 管理,但 C++ 無法語法層面禁止棧上構造。棧上對象調用 share