CodingMan.cc

Code Your True Nature

解析「使用最小花費爬樓梯」問題。本文展示動態規劃(DP)的基礎應用,透過從過去兩階中挑選成本較小的路徑來累加當前花費。這種逐步推導全域最優解的方式,非常適合初學者鞏固對 DP 狀態轉移與查表法的理解。

挑戰跳跳遊戲系列第六題,尋找路徑最高得分。雖然題目複雜度較高,本文分享利用最大堆積(Max Heap)優化搜尋過程的技巧:動態保存過去 k 個步驟中的最大分數,大幅提升動態規劃在長視窗下的執行效率。

跳跳遊戲系列第三題,判定是否能跳至數值為 0 的位置。本文結合深度優先搜尋(DFS)與走訪記錄技巧,防止程式陷入無限循環。透過條件式的路徑探索,引導讀者掌握帶有特殊移動規則的圖形走訪判定邏輯。

LeetCode 必考基礎題,實作鏈結串列的反轉。本文介紹一種直覺的指針變更策略:透過維護一個「前一節點」的參數,在遍歷過程中逐步調整 next 指針的指向。這是一篇掌握鏈結串列結構重組核心邏輯的必讀筆記。

要求反轉鏈結串列中指定範圍內的節點。本文分享利用列表輔助處理的簡化策略,雖然在空間複雜度上有權衡,但極大地降低了指針操作的複雜度與出錯率。這是一篇針對鏈結串列局部重組問題的實務開發隨筆。

延續粉刷房子的概念,本題將顏色種類擴展至 k 種。解題思維同樣基於動態規劃,但需要處理更廣泛的顏色選擇範圍。本文解析如何在增加顏色靈活度的同時,依然保持演算法的執行效率,是進階動態規劃應用的優質練習。

解析 LeetCode 經典題「粉刷房子」。本文探討如何在顏色不相鄰的限制下,運用動態規劃(DP)找出粉刷所有房子的最低成本。透過建立狀態轉移方程,逐層累加當前顏色的最優解,是理解 DP 處理相鄰約束問題的入門首選。

LeetCode 費氏數列計算解析。本文展示如何利用動態規劃(DP)與查表法(Memoization)來儲存中間計算結果,避免傳統遞迴導致的重複運算與效能浪費。這是一篇理解遞迴優化與動態規劃入門的最佳實踐筆記。

針對判定兩棵二元樹是否完全相同的 LeetCode 題目進行解析。本文採用同步遞迴走訪兩棵樹的策略,逐一比對每個節點的值與結構。這是一篇幫助讀者掌握樹走訪(Tree Traversal)與基礎遞迴判別邏輯的入門教學。

尋找矩陣中從左上到右下的最小路徑成本。這是一個純粹且經典的動態規劃(DP)問題。本文引導讀者建立路徑成本矩陣,透過逐一選取上方或左方較小的路徑值進行累加,最終在 O(M * N) 時間內得出全域最優解。

0%