- 遞歸與回溯關係
-
- 遞歸,基本性質就是函數調用,在處理問題的時候,遞歸往往是把一個大規模的問題不斷地變小,然後進行推導的過程
- 回溯,則是利用遞歸的性質,從問題的起始點出發,不斷地進行嘗試,回頭一步甚至多步再做選擇,直到最終抵達終點的過程
- 遞歸 Recursion
-
- 算法思想
-
-
- 是一種調用自身函數的算法(二叉樹的許多性質在定義上就滿足遞歸)
-
-
- 練習
-
-
- LC91、LC247
-
- 時間複雜度計算方式
-
- 迭代法
- 公式法
- 回溯 Backtracking
-
- 基本思想
-
-
- 是一種試探算法
- 一步一步地小心翼翼地進行向前試探,會對每一步探測到的情況進行評估,
- 如果當前的情況已經無法滿足要求,那麼久沒有必要繼續進行下去 - 避免走彎路
-
-
- 特點
-
-
- 出現非法情況時,可以回退到之前的情景,返回一步,甚至是多步,然後再嘗試
- 必須保證,每次都有多種嘗試的可能
-
-
- 練習
-
-
- LC39、LC51
-