zoukankan      html  css  js  c++  java
  • 回溯思想

    回溯

    Backtracking(回溯)属于DFS。

    • 普通的DFS主要用在可达性问题,这种问题只需要执行到特定的位置然后返回即可。
    • 而Backtracking主要用于求解排列组合问题,例如有{'a','b','c'}三个字符,求解所有由这三个字符排列得到的字符,这种问题在执行到特定位置返回之后还会继续执行求解过程。

    因为Backtracking不是立即返回,而是要继续求解,因此在程序实现时,需要注意对元素的标记问题:

    • 在访问一个新元素进入新的递归调用时,需要将新的元素标记为已经访问,这样才能在继续递归调用时不用重复访问该元素。
    • 但是在递归返回时,需要将元素标记为未访问,因为只需要保证一个递归链中不同时访问一个元素,可以访问已经访问过但是不在当前递归链中的元素。
  • 相关阅读:
    JVM
    OLAP
    rocketMq学习
    redis的使用小记
    CRT配置端口转发
    冒泡排序
    spring AOP-切面编程
    linux下对jar包和war包进行重新打包
    oracle-sql性能优化
    遍历List,根据子项的某个属性分组
  • 原文地址:https://www.cnblogs.com/yjxyy/p/11111011.html
Copyright © 2011-2022 走看看