概念:
什么是回溯算法:
回溯算法是对问题的一种穷举思想,及对于一些复杂的问题进行解析,一般采用递归,只是对一些穷举进行能优化(修枝),但是本质上还是穷举,原因是
没有找到更好的方法来对复杂问题的求解,
为什么是有优化效果
因为在递归的过程中不满足条件就退回上一步,
个人感悟
原来自己一直卡的地方是回溯
如:
- 组合问题
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合
//如果是单纯的暴力解题,那么自己就是下面代码
int n = 4;
for (int i = 1; i <= n; i++) {
for (int j = i + 1; j <= n; j++) {
cout << i << " " << j << endl;
}
}
那么问题来了,对于组合数K = N;这个办法就不能用了,这里就只能回溯了
标签:组合,int,问题,算法,回溯,穷举 From: https://www.cnblogs.com/tsqo/p/17177546.html