Dynamic Programming
September 21, 2020- Algorithms
- DP
Dynamic Programming 在寫遞迴時,subset 常常被重複計算造成浪費時間。DP 使用一張表紀錄已經計算過得 subset,若要計算的函數已經出現過在表上,則直接查表不需要再重新計算。 例如使用遞迴計算 Fibonacci…
Dynamic Programming 在寫遞迴時,subset 常常被重複計算造成浪費時間。DP 使用一張表紀錄已經計算過得 subset,若要計算的函數已經出現過在表上,則直接查表不需要再重新計算。 例如使用遞迴計算 Fibonacci…
Palindromic Substrings palindromic 回文,字串由左至右讀和由右至左讀結果相同。e.g. “abba”, “abbcbba”。 計算在字串中有多少個回文 作法 DP 建立一張表分別紀錄長度為 1 時的結果,長度為 2 時的結果,…,長度為 n…
Minimum Spanning Tree (最小生成樹) 所有節點都要連通,且邊的權重總和最低。 邊的數量為節點數-1 Kruskal’s Algorithms 步驟: 將所有邊依照權重(weight)做排序 將邊依序由權重小至大加入到圖中,若加入的邊產生迴圈(cycle…
Big O 是用來評估演算法效率的漸進符號(Asymptotic Notation)。 時間複雜度 漸進符號 O big O upper bound big omega lower bound theta average bound 假設實作出來的 f(n…