LeetCode 20 Valid Parentheses - 判斷括號字符串有效性
題目翻譯 給定只含 ()[]{} 的字符串,判斷是否有效。有效定義:左括號必須與同類型右括號按正確順序閉合。例:()[]{} 有效,(] 和 ([)] 無效。
LeetCode 22 Generate Parentheses - 生成所有合法括號組合
題目翻譯 給定 n 對括號,生成所有合法的括號組合。合法定義:任意前綴中左括號數 ≥ 右括號數,且總數相等。例 n=3:((())), (()()), (())
LeetCode 21 Merge Two Sorted Lists - 合併兩個有序鏈表
題目翻譯 合併兩個升序單鏈表,返回合併後的升序鏈表頭。新鏈表由原節點拼接而成(不創建新節點)。 遞歸解法(最簡潔) next, l2); re
LeetCode 筆記:Best Time to Buy and Sell Stock - 單次交易最大利潤
題目描述 給定每日股價數組,只允許買賣一次(或零次),求最大利潤。即找 i < j 使 prices[j] - prices[i] 最大化。 單遍歷維護最小值
LeetCode 23 Merge k Sorted Lists - 合併 K 個有序鏈表
題目翻譯 合併 k 個已排序的單鏈表,返回合併後的有序鏈表頭。分析時間空間複雜度。 解法一:分治法 (Divide & Conquer) — 推薦 將 k 個
MyEclipse 自動生成 Hibernate 映射文件完整流程
前置條件 已建立 Web 項目 已通過 MyEclipse 添加 Hibernate 框架支持(生成 hibernate.cfg.xml、相關 JAR
LeetCode 筆記:Best Time to Buy and Sell Stock III - 最多兩筆交易最大利潤
題目描述 給定每日股價,最多完成兩筆交易,求最大利潤。交易不得重疊(必須賣出後再買)。 分割點 DP 思想 將時間線在某天 i 分為左右兩段:左段 [0..i
LeetCode 筆記:Best Time to Buy and Sell Stock II - 無限次交易最大利潤
題目描述 給定每日股價,可完成任意次數交易(賣出後才能再買),求最大利潤。本質上是求所有「上升段」的價差之和。 貪心證明 對於任意上升段 p[i] < p[i
LeetCode 24 Swap Nodes in Pairs - 兩兩交換鏈表節點
題目翻譯 給定單鏈表,每兩個相鄰節點交換位置,返回新頭節點。要求 O(1) 空間,只能修改指針不能修改值。例:1→2→3→4 → 2→1→4→3。 遞歸解法(
LeetCode 筆記:Best Time to Buy and Sell Stock IV - 最多 K 筆交易最大利潤
題目描述 給定股票每日價格數組 prices,最多完成 k 筆交易(買入後必須賣出才能再買),求最大利潤。k 可大於 n/2。 動態規劃:局部最優與全局最優
併發編程:C/C++ 線程安全單例模式實現詳解
單例模式的線程安全挑戰 多線程環境下,GetInstance() 若無同步,可能創建多個實例。經典雙重檢查鎖(DCLP)在 C/C++ 中因內存模型和編譯器優化
C++11 新特性:Static Assertions 與 Constructor Delegation
Static Assertions (靜態斷言) 在編譯期進行條件檢查,失敗則報錯並停止編譯。語法: static_assert(bool_constexpr,
LeetCode Delete Node in a Linked List - 只給節點刪除該節點
題目大意 給定單鏈表中非尾節點的引用,要求在 O(1) 時間內刪除該節點。無法訪問頭節點,也無法訪問前驅節點。 經典技巧:值複製 + 跳過下一個 因為無法修改
HDU Flood-it! - IDA* 求最少染色步數
題目大意 N×N (2≤N≤8) 棋盤,每格顏色 0~5。從左上角 (0,0) 開始,每步選一種顏色,將與起點連通區域(四連通、同色)整體改為該顏色,從而吞併相
C/C++ 函數指針強制類型轉換與指針函數關係詳解
背景:qsort 比較函數簽名 標準庫 qsort 要求比較函數簽名為: int (*compar)(const void*, const void*); 但我
LeetCode 25 Reverse Nodes in k-Group - K 個一組翻轉鏈表
題目翻譯 給定單鏈表,每 k 個節點為一組進行翻轉,返回修改後的鏈表頭。若剩餘節點不足 k 個則保持原序。要求 O(1) 空間,只能修改節點指針,不能修改節點值
HDU 1813 Escape from Tetris - IDA* 找最短通用逃生指令序列
題目大意 給定 N×N (N<9) 棋盤,0 為可通行,1 為障礙。Lele 可能被放在任意一個 0 格。需找一個最短指令序列(由 north/east/sou