CodingMan.cc

Code Your True Nature

分析 LeetCode 2300 題,計算魔法咒語與藥水的成功配對數量。本文結合陣列排序與二元搜尋 (Binary Search) 技術,在 O(n log m) 的複雜度內快速找出符合門檻條件的組合,展示搜尋技術在大規模資料比對中的效力。

挑戰 LeetCode 1488 題,解決城市防洪問題。本文分享如何利用雜湊表追蹤湖泊狀態,並透過有序集合紀錄可排水的晴天日期,探討如何在下雨前精準選擇需要抽乾的湖泊,以避免災難性的洪水發生。

分析 LeetCode 494 題,找出達成目標總和的正負號組合方式。本文探討如何將問題轉化為子集合總和問題 (Subset Sum),並利用動態規劃 (DP) 空間優化技巧,有效率地計算出所有可能的組合數量。

分析 LeetCode 3481 題:套用字串替換規則。本文介紹如何建立相依圖以處理不重疊的替換規則,並透過遞迴方式處理帶有佔位符的字串替換邏輯,優化搜尋效率以達成快速的文字處理。

挑戰 LeetCode 778 題,在水位上升的網格中尋找最短過河路徑。本文結合 Dijkstra 演算法與優先權佇列 (Priority Queue),動態計算到達目標位置所需的最小等待時間,分析路徑搜尋中的貪心策略。

解析在 0/1 矩陣中尋找最大全 1 矩形的面積。本文展示如何將二維問題轉化為多個一維的「直方圖最大矩形」問題,透過動態更新高度陣列並重複套用單調堆疊演算法,達成高效的空間與時間運算。

解析 LeetCode 買賣股票系列問題之二。本文分析在不限制交易次數的情境下,如何利用貪婪演算法 (Greedy) 捕捉所有上升趨勢來最大化利潤,並提供時間複雜度 O(n) 的極簡實作思路。

詳解在直方圖中尋找最大矩形面積的經典演算法。本文介紹如何利用單調堆疊 (Monotonic Stack) 在 O(n) 時間內找出每個柱子左右兩側的第一個較矮柱子,進而計算出以該柱子為高度的最大矩形。

解析經典的「荷蘭國旗問題」(Dutch National Flag Problem)。本文介紹如何在不使用內建排序的情況下,利用三個指標在一次遍歷中完成 0、1、2 的原地排序,達成最優的 O(n) 時間複雜度。

分析 LeetCode 經典困難題「正規表達式匹配」。本文探討如何處理特殊的句點與星號字元,利用動態規劃 (Dynamic Programming) 逐步構建匹配矩陣,解決字串間複雜的模式比對邏輯,是訓練 DP 思維的必經之路。

0%