
动态规划精讲
文章平均质量分 68
动态规划(DP)是一种通过将复杂问题分解为重叠子问题来优化计算的算法思想,适用于具有最优子结构性质的问题。其核心在于存储子问题的解(记忆化),避免重复计算。
神里流~霜灭
简简单单!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
路径问题(greedy):地下城游戏
用动态规划原理解救公主!!!原创 2025-03-17 20:31:14 · 655 阅读 · 0 评论 -
最小路径和
给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。原创 2025-03-12 19:44:36 · 297 阅读 · 0 评论 -
下降路径最⼩和(medium)
可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列(即位于正下方或者沿对角线向左或者向右的第一个元素)。如图所示,为和最小的两条下降路径。如图所示,为和最小的下降路径。,请你找出并返回通过。原创 2025-03-11 19:22:23 · 237 阅读 · 0 评论 -
礼物的最大价值
我们初始化的目的呢就是考虑到边界问题和一些细节问题。路径问题我们一般考虑用虚拟节点的方式来初始化。有的同学问到这里就朦朦的,虚拟节点简单的理解就是步存储实际数据一个节点,主要用来处理特殊情况。注意:珠宝的价值都是大于 0 的。除非这个架子上没有任何珠宝,比如。1.里面的值要保证后面的填表时正确的;用虚拟节点处理路径问题就是多加一行和多加一列的方式。路径 1→3→5→2→1 可以拿到最高价值的珠宝。为该位置珠宝的价值。我们根据之前的路径问题的做题思路,根据。,从某一个位置出发,向下或向右走。原创 2025-02-20 23:58:35 · 170 阅读 · 0 评论 -
不同路径(pro)
给定一个m x n的整数数组grid。一个机器人初始位于(即grid[0][0]机器人尝试移动到(即机器人每次只能向下或者向右移动一步。网格中的障碍物和空位置分别用1和0来表示。机器人的移动路径中不能包含有障碍物的方格。返回机器人能够到达右下角的不同路径数量。测试用例保证答案小于等于2 * 109。23x3 网格的正中间有一个障碍物。从左上角到右下角一共有2条不同的路径:1. 向右 -> 向右 -> 向下 -> 向下2. 向下 -> 向下 -> 向右 -> 向右1为0或1。原创 2025-02-08 00:33:21 · 1032 阅读 · 0 评论 -
不同路径(medium)
本题是机器人在 m×n 网格中从左上角到右下角的路径计数问题,采用动态规划算法。用 dp[i][j] 表示到达 [i,j] 的路径数,状态转移方程为dp[i][j]=dp[i−1][j]+dp[i][j−1] ,初始化 dp[0][1]=1 ,按序填表后返回 dp[m][n]。原创 2025-01-29 10:30:16 · 851 阅读 · 0 评论 -
解码⽅法(medium)
美国标准信息交换码,由7为或8位二进制数表示128个字符,用于文本字符与数字编码转换。本文围绕数字编码消息解码方法总数问题展开。先阐述动态规划五步思路,接着分析本题,确定状态表示、转移方程,介绍初始化及返回值情况,还提及ASCII码知识辅助理解,最后给出C++代码实现计算解码方法总数。原创 2025-01-25 08:48:02 · 469 阅读 · 0 评论 -
使⽤最⼩花费爬楼梯(easy)
那么如果我们先到达i-1位置时,此时的最小花费为cost[i-1],同理,在i-2位置,最小花费为cost[i-1],到这里我们的状态转移方程就呼之欲出了,即dp[i]=dp[i]=min(dp[i-1]+cpst[i-1],dp[i-1]+cost[i-2]).示例2:cost=[1,100,1,1,1,100,1,1,100,1]中9个数据,由0~9分别对应下标,这里爬楼梯有个前提,就是最优,也就是最小花费;输⼊:cost=[1,100,1,1,1,100,1,1,100,1]原创 2025-01-22 03:48:26 · 370 阅读 · 0 评论 -
三步问题(easy)
以i位置最近的一步来分析,当小孩处于i位置时,此时的步数应当为do[i],而在该位置上一步上一级台阶时,此时的步数应当时上一步上一级台阶的步数加上小孩在该位置时的步数,即dp[i]+=dp[i-1],以此类推,那么小孩前三步的状态表示应当为:1.dp[i]+=dp[i-1];综上所述,即状态转移方程为dp[i]=dp[i-1]+dp[i-1]+dp[i-3]。原创 2025-01-19 08:40:08 · 377 阅读 · 0 评论 -
第N个泰波那契数(easy)
T0=0,T1=1,T2=1,且在n>=0的条件下Tn+3=Tn+Tn+1+Tn+2给你整数n,请返回第n个泰波那契数Tn的值。原创 2025-01-19 07:57:39 · 137 阅读 · 0 评论