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

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

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

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

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

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

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

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

递归的过程:

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

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

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

写出递推公式的方法:

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

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

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

相关推荐
木井巳8 小时前
【记忆化搜索】最长递增子序列
java·算法·leetcode·深度优先·剪枝·推荐算法
木井巳1 天前
【记忆化搜索】不同路径
java·算法·leetcode·深度优先·剪枝·推荐算法
Logic1011 天前
C语言/数据结构动态规划题解:Kadane算法求最大子数组和——O(n)时间O(1)空间
c语言·数据结构·动态规划·贪心·时间复杂度·算法题·最大子数组和
IPdodo_1 天前
住宅 IP 与数据中心 IP 到底差在哪:用 RDAP、BGP 和多源证据做工程判定
网络·网络安全·代理模式·ip
萧西待水2 天前
奥赛一本通 1447 靶形数独
算法·深度优先
梦帮科技2 天前
AI 音乐产品的发布工程:验证门、数据发布、回滚与生产运维纪律
数据结构·数据库·架构·node.js·音视频·动态规划·推荐算法
语戚2 天前
力扣 1621. 大小为K的不重叠线段的数目:动态规划(Java 实现)
java·算法·leetcode·动态规划·力扣·dp
青山木2 天前
Hot 100 --- 最长有效括号
java·数据结构·算法·leetcode·动态规划
这料鬼有毒2 天前
二刷hot100-1143.最长公共子序列
算法·leetcode·动态规划
Tisfy2 天前
LeetCode 1477.找两个和为目标值且不重叠的子数组:滑动窗口 + 记录前值(动态规划)
动态规划·题解·dp·滑动窗口