回溯算法
回溯法的基本步骤是什么?
https://www.nowcoder.com/questionTerminal/4b8b85b2f94a4558ada70829ccd60aa0
组合问题:1234
切割问题:字符串切割
子集问题:1234:{12}{23}{34}
排列问题:
棋盘问题:N皇后、解数独
一般用树抽象:
vector<vector<int>> 二维数组;
vector<int> path;
void Backtracking(参数:n,k,startindex){//n:个数 k:组合大小
if(终止条件){
收集结果;
return;
}
for(集合元素){
处理节点;
递归;
回溯操作;
}
}
回溯三部曲: 1.递归函数的参数和返回值 2.确定终止条件 3.单层递归逻辑