初探动态规划--记忆化搜索

记忆化搜索 = 暴力dfs + 记录答案

记忆化搜索是一种优化技术,结合了暴力深度优先搜索 (dfs) 和记录答案的方式。

在动态规划的学习过程中,我们可以将问题划分为以下阶段:dfs暴力搜索,记忆化搜索,以及最终的递推。

动态规划入门思路: dfs暴力 --> 记忆化搜索 --> 递推

动态规划的入门思路可以总结为:从dfs暴力搜索开始,通过记录已经计算过的结果,即记忆化搜索,逐步优化到递推。

在具体优化过程中,我们可以看到递归的过程实际上包含了两个主要阶段:递和归。

  1. dfs
  2. 记忆化搜索
  3. 逆序递推
  4. 顺序递推
  5. 优化空间

递归的过程:

  • "递" 的过程是: 分解子问题的过程;

  • "归" 的过程才是: 产生答案的过程;

"递" ---> 自顶向下, "归" ---> 自底向上 , 其中 "底" 是 递归搜索树 的底

写出递推公式的方法:

  • 递推 的公式 = dfs 向下 递归 的公式
  • 递推 数组的初始值 = 递归 的边界

对于递推数组的初始值,它实际上对应于递归的边界条件,即在递归的过程中最小的子问题的解。

递推数组的初始值可以看作是递归的终点,作为动态规划的起点。

相关推荐
wabs6661 天前
关于动态规划【力扣583.两个字符串的删除操作的思考】
算法·leetcode·动态规划
Robot_Nav1 天前
贪心算法、动态规划与 MPPI 算法结构相关力扣题目汇总
算法·贪心算法·动态规划
网络与设备以及操作系统学习使用者2 天前
通信的物理与逻辑双维度解析
学习·深度优先
随意起个昵称3 天前
状压dp-基础题目2([USACO12MAR] Cows in a Skyscraper G)
c++·算法·动态规划
wabs6663 天前
关于动态规划【力扣392.判断子序列的思考】
算法·leetcode·动态规划
旖-旎3 天前
《LeetCode 64 最小路径和 || LeetCode 174 地下城游戏》
c++·算法·leetcode·动态规划
山峰哥3 天前
数据库工程:Explain执行计划对比实战指南‌
数据库·sql·oracle·深度优先·宽度优先
旖-旎4 天前
《LeetCode 746 使用最小花费爬楼梯 || LeetCode 91 解码方法》
c++·算法·leetcode·动态规划
wabs6664 天前
关于动态规划【力扣1035.不相交的线和53.最大子数组和的思考】
算法·leetcode·动态规划
小O的算法实验室4 天前
2026年ESWA,基于全局进化动态规划与局部粒子群优化GPU 支持去中心化多机器人路径规划
动态规划