(一)回溯算法

概念:

什么是回溯算法:

回溯算法是对问题的一种穷举思想,及对于一些复杂的问题进行解析,一般采用递归,只是对一些穷举进行能优化(修枝),但是本质上还是穷举,原因是
没有找到更好的方法来对复杂问题的求解,

为什么是有优化效果

因为在递归的过程中不满足条件就退回上一步,

个人感悟

原来自己一直卡的地方是回溯

如:

  • 组合问题
    给定两个整数 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;这个办法就不能用了,这里就只能回溯了

posted @ 2023-03-04 08:43  壹剑霜寒十四州  阅读(4)  评论(0编辑  收藏  举报