一少年独坐屋中突然顿悟!-回溯

Posted mb61caa1c74a413

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一少年独坐屋中突然顿悟!-回溯相关的知识,希望对你有一定的参考价值。

目录

//对每一个元素进行回溯
        for(int i=first;i<=length;i++)
            list.add(i);
            backtrack(i+1,length,list,k);
            //进行回溯
            list.remove(list.size()-1);

        

上面是随便截取的很常见的回溯操作,这里主要有三种关键操作记录一下:

  • for里面i如果直接i=0,那么递归树是这样一种情况,每一层都可以从头重新取值。
  • 如果for里面i=first,first由我们传值给他,这里传值的时候主要分为i或者i+1,注意啦!i和i+1会对回溯树产生什么影响?
  • 如果是i,那么首先递归树每一层从第二个结点开始就不能包含之前结点已选的数。
  • 如果是i+1,一个很显然的功能也是保证递归树每一层从第二个结点开始就不能包含之前结点已选的数,那么i和i+1的主要区别在于是否当前数可以重复选取!
    一少年独坐屋中突然顿悟!-回溯_递归

以上是关于一少年独坐屋中突然顿悟!-回溯的主要内容,如果未能解决你的问题,请参考以下文章

纸牌屋中那一集里面有三个人的床戏

19岁少年一口气「黑」了25辆特斯拉!10岁写代码,不上课,开公司

19岁少年一口气「黑」了25辆特斯拉:10岁写代码,不上课,开公司

递归回溯最简单易懂的小例子

正则表达式 —— 回溯陷阱

一个程序员的顿悟:理想的程序员只比你多了6个一点点