77-组合

GET{

 

  方法(){

    1 这一题是回溯算法的第一类经典题目, 组合问题

 

    2 回溯法出现的原因是: 其实本没有回溯法, 有的只是递归, 回溯法出现只是因为递归的过程中为了收集元素, 使用了一个共同的容器, 由于本次收集的结果会影响下一次收集的结果, 所以, 我们需要在本次收集完结果并进行收集完结果进行相应判断之后, 把本次收集的元素去除, 以方便下一次结果的收集

 

    3 他们说, 回溯法是和for循环一起出现的, 其实不尽然, 这两个并没有太大的关系, 回溯法出现就是因为递归方法使用一个共同的容器收集结果集

 

    4 但是, for循环的出现, 会更能让我们理解回溯法的基本思想, 因为for循环遍历的元素, 在地位上是同等的, 将这个元素收进容器中, 肯定会对下一次的元素遍历造成影响, 所以, 我们操作完一个元素, 就需要去除这个元素对下一次遍历元素造成的影响

 

    5 只对于这个问题(组合问题)而言, 我最大的纠结之处在于, 在写代码之前, 没有搞清楚进行元素组合的收集是一个怎么样的过程, 从而导致写代码的时候没有兼顾好各种条件, 写成之后改错时, 哪里错了改哪里, 最终还是没有能够成功的通过, 没有把眼界放在整个程序之中.

 

    6 所以, 我们要认识到, 算法题, 是通过代码中的逻辑来简化我们实际解决问题的逻辑, 这一点的前提是, 我们必须要把这个实际问题的正常处理逻辑搞清楚, 这样, 我们才能更清楚的知道, 代码到底应该怎么样的运行

  }

 

}

posted @ 2021-03-14 22:24  0龙行者0  阅读(63)  评论(0编辑  收藏  举报