LeetCode 筆記 - 120. Triangle
要求在數字三角形中尋找相加總和最小的路徑。解題思路結合了深度優先搜尋(DFS)與動態規劃(DP),透過記錄已探索過的子路徑結果來避免重複計算。本文分享如何透過記憶化搜索,將複雜路徑搜尋優化為高效的遞推過程。
要求在數字三角形中尋找相加總和最小的路徑。解題思路結合了深度優先搜尋(DFS)與動態規劃(DP),透過記錄已探索過的子路徑結果來避免重複計算。本文分享如何透過記憶化搜索,將複雜路徑搜尋優化為高效的遞推過程。
挑戰尋找不含重複元素且總和最大的子數列。本文結合滑動視窗(Sliding Window)與哈希表(Hash Map)來動態調整搜尋範圍,並配合前綴和技術加速區間加總。這是一篇展示如何組合多種經典技巧來解決複合型問題的開發筆記。
尋找從兩端移除元素使總和等於 x 的最小步驟。本文分享一個逆向思考的小技巧:將問題轉化為尋找總和為「總數 - x」的最長連續子陣列。結合前綴和與雙指針技術,能讓這個看似複雜的兩端搜尋問題變得易於實作。
挑戰清空僅包含 a 與 b 的字串。由於移除規則允許一次刪除所有符合條件的「迴文子序列」,本文揭露了一個驚人的簡化邏輯:若原字串非迴文,最多只需兩步(先刪除所有 a,再刪除所有 b)即可清空。這是一篇強調審題與邏輯簡化重要性的筆記。
在 Python 開發中,遞迴列出目錄及子目錄下的所有檔案是常見需求。本文分享如何使用內建的 glob 模組,透過簡潔的通配符語法快速取得完整檔案清單。這是一篇掌握檔案系統操作與目錄遍歷技巧的實用技術隨筆。
挑戰尋找兩個鏈結串列的交會點。本文特別介紹神奇的「龜兔賽跑演算法」(Floyd Cycle Detection Algorithm),展示如何透過精巧的指標移動邏輯,在不需要額外空間的情況下,偵測出結構中的環或交會節點,是一篇探討指針美學的深度心得。
分享如何在 Mac 系統中使用程式碼觸發系統通知(System Notification)。對於需要執行長時間程序的使用者,本文提供一套自動化提醒方案,讓程式在任務結束後主動通知開發者,有效節省等待時間並提升工作流程效率。
解析如何在靜態數列中快速進行多次區間總和查詢。本文介紹「前綴和」表格的建立與運算公式:透過預先計算累積和,讓每次查詢都能在 O(1) 時間內完成。這是一個優化重複性查詢需求的經典演算法實作範例。
將前綴和概念延伸至二維矩陣。本文引導讀者建立 2D Prefix Sum 表格,透過計算矩形區域的加減邏輯,達成任意子矩形總和的瞬間查詢。這是一篇掌握空間索引與高效率矩陣運算的高階技術分享。
LeetCode 矩陣轉置實作練習。本文教學如何將 2D 矩陣的行與列進行互換,是一篇關於矩陣基本操作與巢狀迴圈索引處理的基礎筆記。內容簡潔直觀,適合初學者鞏固對多維陣列結構的理解。