FAfa_C++ -
代碼隨想錄Day25_回溯5_全排列
非遞減子序列
問題描述
給了一個數組,要求給出其所有長度=2的非遞減子序列。
思路
壓入結果的條件是path.size()=2,回溯過程結束的條件是移動到了邊上startIndex=num.size()
在樹中,非遞減序列,要求壓入的元素必須比之前壓入的大:if(path.empty()||nums[i]=path.back())
問題
如果給出的數組包含重複元素,那麼答案的集合中就會包含重
後端
FAfa_C++ -
代碼隨想錄Day22_回溯.md
回溯理論
什麼是回溯
回溯,顧名思義,返回溯源,記錄當前節點後返回前一節點繼續的過程。本質上是一種羅列所有情況的窮舉搜索。
遞歸
遞歸,函數間接或者直接調用自身,回到最初最簡單的情況。目前的情況歸根結底就是一棵樹的情況。
回溯與遞歸
為什麼説回溯常常伴隨遞歸?遞歸是把一棵大二叉樹返回到一個最基本的三個節點的樹,在每一次樹變小的過程中,都有一個數的子樹返回根節點的過程。
n個數中k個數的組合
問題
c++