关键词:所有的,所有可能的
解题框架¶
回溯就是纯暴力穷举,算法复杂度一般都很高 递归之前做选择,递归之后撤销选择
多重循环一般是不够的。 - 条件 - 路径path - 选择列表:核心--选择的策略决定解题思路
//答案 vector<int> result; //路径:也可以声明在外面 void backtrack(路径,选择列表) if(满足条件) result.add(); return; for(选择 in 选择列表) #做选择 将该选择从选择列表移除 路径.add(选择) backtrack(路径,选择列表) #撤销选择 路径.remove(选择) 将该选择再加入选择列表