LeetCode 筆記:生命遊戲 原地演算法詳解
一、題目描述 根據 Conway 的「生命遊戲」規則,給定 m × n 二進制矩陣(1=活、0=死),計算下一狀態。規則: 活細胞鄰居 < 2 → 死(孤獨)
C/C++ 學院實戰:Boost 容器、線性表與哈希表手寫實現
一、Boost 库安裝與 array 示例 Boost 是 C++ 準標準庫,安裝後可直接使用 boost::array 等固定大小容器: #include
LeetCode 260:只出現一次的數字 III 位運算解法
題目描述 給定整數數組 nums,其中恰有兩個元素只出現一次,其餘元素均出現兩次。找出這兩個只出現一次的元素。要求線性時間複雜度、常數空間複雜度。結果順序不限。
C/C++ 進階:左值、右值與值類別深度解析
引言 C++11 引入了右值引用與移動語義,徹底改變了資源管理方式。要理解 std::move、std::forward 等機制,必須先搞清楚左值與右值的本質。
LeetCode 筆記:超級醜數 解題詳解
一、題目描述 編寫一個程序來尋找第 n 個超級醜數。超級醜數是指其所有質因數都在給定質數列表 primes(大小為 k)中的正整數。例如,給定 primes =
Effective C++ 條款 44:將參數無關代碼提取出模板,抑制代碼膨脹
問題:模板代碼膨脹 模板每次實例化都會生成完整代碼副本。若模板包含與參數無關的代碼(非類型參數如 int N、或類型參數如 int/long 導致相同二進制表示
Effective C++ 條款 45:成員函數模板實現智能指針隱式轉換
背景:智能指針的類型轉換難題 普通指針支援隱式向上轉型(派生類指針 → 基類指針)。但智能指針 SmartPtr<Derived> 和 SmartP
HDU 1523 Decoding Morse Sequences:動態規劃解碼摩斯密碼序列
題目大意 給定一段摩斯密碼編碼字符串(由 . 和 - 組成)和一個包含 n 個單詞的字典。每個單詞可轉換為對應的摩斯編碼。求有多少種不同的單詞序列(句子)拼接後
Effective C++ 條款 46:類模板中定義非成員函數以支持隱式類型轉換
問題背景 Item 24 指出:若所有參數都需隱式轉換,函數應為非成員函數。推廣到模板: template <typename T> class R
HDU 3068 最長回文:Manacher 算法 O(n) 線性解法模板
題目描述 給定小寫字母字符串 S,求最長回文子串長度。回文正讀反讀相同(如 aba, abba)。 Manacher 算法核心思想 統一奇偶長度:在字符間插
OpenCV PS 濾鏡算法:球面化/凹陷效果(球面坐標映射)
效果展示 球面化濾鏡將平面圖像映射到球面上再投影回平面,產生凹陷/凸出的立體視覺效果。 核心數學模型 以圖像中心為球心,半徑 R = min(width,
OpenCV 圖像傾斜變換:水平/垂直 Skewing 算法實現
效果展示 傾斜變換將圖像沿水平或垂直方向進行剪切映射,產生平行四邊形視覺效果。 數學原理 水平傾斜 固定 y,x 隨 y 線性位移:x = x + (h
Effective C++ 條款 48:認識模板元編程——編譯期計算的藝術
什麼是模板元編程 (TMP)? 利用 C++ 模板機制編寫在編譯期執行的程序。模板實例化過程即為「運行」,輸出為類型/常量/代碼,最終參與正常編譯。TMP 圖靈
C++ STL 函數適配器詳解:bind2nd、mem_fun_ref、ptr_fun 實戰與源碼剖析
函數適配器三大類 針對成員函數:mem_fun(指針)、mem_fun_ref(引用/對象)。 針對普通函數:ptr_fun 將函數指針轉為函數對象。 參數綁
C++ Primer STL 剖析:容器適配器 stack/queue/priority_queue 源碼與實戰
容器適配器本質 stack、queue、priority_queue 不提供迭代器,封裝底層容器(deque/vector/list)提供特定語義: stac
HDU 4513 完美隊形 II:Manacher 算法加強版(非遞減回文)
題目大意 給定 n 人身高序列 h[1..n],選取連續子段重新排列(保持相對順序)形成「完美隊形」: 左右對稱(回文); 從左到中間高度非遞減(H[1] ≤
Effective C++ 條款 51:遵循 new/delete 慣例——標準行為的完整實現指南
四大核心慣例 operator new 失敗需循環嘗試、調用 new-handler、最終拋 bad_alloc。 operator new 需處理 size
extern "C" 完整解法