Apache Commons Collections 核心組件深度指南:Predicate、Transformer、Closure、集合操作與擴展迭代器
概述 Apache Commons Collections (v4+) 提供豐富的函數式編程組件,讓 Java 集合操作更聲明式、可組合。本文系統講解核心接口與
UVA 11525 排列重構:樹狀數組 + 二分查找 O(k log² k) 解法
題目大意 給定 k 和第 n 個排列的「因子進制」表示: n = S₁·(k-1)! + S₂·(k-2)! + ... + Sₖ₋₁·1! + Sₖ·0!,其
C++ 空指針 nullptr 與 void 指針:類型安全的現代最佳實踐
歷史包袱:0 和 NULL 的缺陷 C/C++ 早期用 0 或 NULL 表示空指針。但 NULL 定義不統一: 部分庫定義為 0 (int) 部分定義為 (
LeetCode 判斷兩棵二叉樹是否相同:遞歸與迭代雙解法
題目描述 給定兩棵二叉樹的根節點 p 和 q,判斷它們是否完全相同。相同定義為:結構相同,且對應節點值相等。 遞歸解法(最直觀) right); } 遞歸過
C/C++ 獲取可執行文件路徑並創建同名目錄:Windows API 實戰
需求場景 MFC/控制台程序啟動時,需在可執行文件所在目錄下創建同名文件夾存放數據。例如 D:\KFS\codes\22222\Release\22222.ex
C++ 常量指針與指針常量:const 位置決定語義的核心規則
核心口訣:const 修飾誰,誰就不可變 const 出現在 * 左邊 → 修飾指向的值(常量指針/指向常量的指針) const 出現在 * 右邊 → 修飾指針
LeetCode 刪除鏈表中值為 val 的所有節點:迭代法與虛擬頭節點技巧
題目描述 給定單鏈表頭節點 head 和整數 val,刪除鏈表中所有值等於 val 的節點,返回新頭節點。 示例:1 → 2 → 6 → 3 → 4 → 5 →
C++11 移動構造函數深度解析:從資源管理到性能優化
為什麼需要移動語義? 現實中充滿「所有權轉移」場景:銀行轉賬(錢從戶 A 移至戶 B)、換手機移 SIM 卡、剪切文件。C++11 前,這類場景只能通過深拷貝實
POJ 1020 紀念日蛋糕:DFS 剪枝與狀態壓縮的靈活應用
題目大意 給定目標正方形邊長 box_size 和 n 個小正方形邊長,判斷能否用這 n 個小正方形無重疊、無空隙地填滿大正方形。小正方形邊長範圍 1~10,數
LeetCode 單鏈表反轉:遞歸與迭代雙重解法詳解
題目描述 給定單鏈表頭節點 head,將鏈表反轉並返回新頭節點。 示例:1 → 2 → 3 → 4 → 5 反轉為 5 → 4 → 3 → 2 → 1 解法一
HDU 1829 蟲子性別判定:帶關係的並查集經典應用
題目背景 教授研究稀有蟲子的性行為,假設只有兩種性別且僅發生異性交互。給定蟲子編號及交互記錄,判斷是否存在同性交互(即假設不成立)。 問題建模 N 隻蟲子(
POJ 2495 棋盤覆蓋:兩格缺失的黑白染色判定法
題目描述 給定一個 8×8 的國際象棋棋盤,其中恰好有兩個格子被挖去。判斷能否用 1×2 的多米諾骨牌(長方形)無重疊、無超出地覆蓋剩餘所有格子。 核心洞察:
C/C++ 空指針、空指針常量與 NULL 深度解析
什麼是空指針? 空指針是指不指向任何有效記憶體位址的指針。系統保證空指針不會指向任何實際對象或函數。在 C/C++ 中,將指針賦值為 0 或等價的常量表達式即可
HDU 5229 博弈思維:字串遊戲的先手必勝策略分析
題目大意 給定 N 個字串,從中任選兩個字串 A 和 B。兩位玩家輪流操作,每回合可執行以下兩種操作之一: 操作 1:從兩個字串中隨機選一個非空字串,刪除其末
NYOJ 1099 Lan Xiang's Square:四點判正方形的幾何鑑別法
題目描述 給定平面上四個點(座標為整數,範圍 ±10⁸),判斷它們能否構成一個正方形。能則輸出 Yes,否則 No。多測試案例,T ≤ 10⁵。 幾何判別條件
HDU 1558 Segment Set:幾何判斷 + 並查集離線處理
題目大意 平面上動態添加線段,支援兩種操作: A x1 y1 x2 y2:添加線段。 Q k:查詢第 k 條線段所在的連通塊大小(線段相交視為連通)。 多測試案
C++ 中用 const、enum、inline 替換 #define 的最佳實踐
為什麼要避免 #define? 預處理指令 #define 在編譯前進行文本替換,導致兩大缺陷: 符號不進符號表:編譯器看不到宏名稱(如 ASPECT_RAT
Codeforces Round #303 (Div. 2) 題解匯總 (A~E)
比賽概覽 Codeforces Round #303 (Div. 2) 包含五道題目,涵蓋模擬、貪心、動態規劃、排序、最短路樹構造等經典技巧。以下逐題給出核心思