当前位置: 首页 > news >正文

hot100 回溯算法

回溯:

  • 特点:

    • 递归是向前,回溯就是需要考虑后退,它是一种搜索的方式;

    • 类似于暴力搜索 + 剪支【提高效率】;

      • 减支,是优化的唯一方式;
    • 集合的大小构成了树的宽度,递归的深度构成了树的深度;

      for循环树的宽度,递归树的深度【多叉树】;

      • 变量【宽度、深度】

      在每一次的迭代中确定子树的宽度【去重问题】

  • 经典题型:

    • 组合问题:

      • 组合是没有顺序的,所以一定会传入一个下标,来限制访问已经访问过的【结果去重】

      • 去重问题:

        • 结果去重【无顺序】:不能访问已经访问过的数据【传入下标【i or i++】,i不能减小】;

        • 数据去重【输入有重复】:重新排序,

          • 当元素可重复的时,传入下标不变【i 】;

          总结:对同一树枝去重,是元素去重,【通过标记法】

          对同一树层去重,是结果去重;【通过下标i】

          ​ 对于唯一解,不需要进行树层的去重【最佳行程】

    • 排列问题;

    • 分割,子集;

      总结:组合 + 分割问题【收集树的叶子节点】

      ​ 子集问题【找到树的所有节点】

    • 棋盘问题【偏向于深度优先搜索,最佳结果唯一】:

      • 最佳行程【解决优先问题】
      • N皇后【对于树宽,树深】
      • 数独【二维递归】

    回溯是暴力解法,模板较为固定【通常会超时】

http://www.sczhlp.com/news/707.html

相关文章:

  • 7.28随笔
  • 外培总结
  • 7月28日
  • CodeBuddy IDE小试-单元测试篇
  • 《大道至简》
  • linux中常用的数值计算
  • 【问题】--Macbook相关问题
  • 软工作业day27
  • 2025.7.28 闲话:CF678E Another Sith Tournament 倒序状压 DP 的一点想法
  • 基础知识
  • java学习(大道至简读后感)
  • js基础第一天
  • 春训#1题解
  • 垃圾话1
  • 2025/7/28 总结
  • 7.27 周总结
  • 存贮电解液配方的二进制格式与解析它的010 Editor的模板
  • 读《大道至简——软件工程实践者的思想》有感
  • 动态规划
  • Wireshark入门指南:网络流量分析利器
  • 量子计算先驱David Schuster的二十年探索之路
  • SpringBoot中使用TOTP实现MFA(多因素认证) - Tom
  • 上拉电阻和下拉电阻
  • 蓝桥杯2024省赛A组题解
  • 春训#2题解
  • 国内AI编码工具哪家强CodeBuddy+通义灵码+Trae
  • js基础第二天
  • [PaperReading] Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets
  • 蓝桥杯2025省赛A组游记题解
  • 7.28 闲话