算法训练day32 回溯算法总结

算法训练day32 回溯算法总结

代码随想录 (programmercarl.com)

有递归便有回溯

  • 回溯、二叉树遍历、深度优先常混在一起 ---> 都使用了递归

  • 是暴力搜索,可以配合剪枝

  • 组合、排列、切割、子集、棋盘问题

  • 回溯三部曲

    • void backtracking(参数) {
          if (终止条件) {
              存放结果;
              return;
          }
      
          for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {
              处理节点;
              backtracking(路径,选择列表); // 递归
              回溯,撤销处理结果
          }
      }
      

组合问题

  • 递归控制纵向遍历、for控制横向遍历、回溯调整结果

未完,,

posted @ 2023-10-17 23:09  烫烫烫汤圆  阅读(6)  评论(0)    收藏  举报