溯算法框架。解決一個回溯問題,實際上就是一個決策樹的遍歷過程。你只需要思考 3 個問題:
-
1、路徑:也就是已經做出的選擇。
-
2、選擇列表:也就是你當前可以做的選擇。
-
3、結束條件:也就是到達決策樹底層,無法再做選擇的條件。
backtrack(已經選擇的路徑x,可選列表y){
if(滿足結束條件){
res.add();
return;
}
for(type ele: 可選列表y){
x.push(ele)//做選擇
backtrack(x,y');//遞歸
x.pop()//撤銷
}
}