算法刷题之回溯法
杰明学编程
这个作者很懒,什么都没留下…
展开
-
N皇后问题解法
一般遇到N皇后问题,就涉及到回溯算法(backtrace)。回溯算法一般可以用来解决集合,子集,排列,组合,地图路线,字符串路径等问题。下面来总结一下回溯算法的模板:if(终止条件) //判断终止条件{ res.push_back(path); //存放符合题目结果 return; //返回}for(选择 in 选择列表 ){ 做选择 backtrace(路径,选择列表) //递归算法,类似dfs 撤销选择,回溯}首先,定义一个全局二维向量ve原创 2021-07-26 00:12:43 · 276 阅读 · 0 评论 -
77. 组合
题目:给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。函数代码:class Solution {public: vector<vector<int>>res; vector<vector<int>> combine(int n, int k) { if (k <= 0 || n <= 0) return res; vector<int> trac原创 2020-08-15 11:04:50 · 91 阅读 · 0 评论 -
70.子集
题目:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。题解思路:方法:回溯法函数代码:class Solution { int n; vector<int>path; vector<vector<int>>res;public: vector<vector<int>> subsets(vector<int>& nums) {原创 2020-08-14 15:57:12 · 88 阅读 · 0 评论