动态规划
文章平均质量分 80
niu_sama
这个作者很懒,什么都没留下…
展开
-
动态规划9,最长定差子序列,最长斐波那契子序列长度,最长等差数列
如果还没有做过前面的题,建议先去尝试。原创 2024-04-10 17:03:29 · 348 阅读 · 0 评论 -
动态规划8, 摆动序列,最长递增子序列,最长数对链
f[i] 表示:以i 位置为结尾的所有子序列中,最后呈现 “ 上升” 状态下的最长摆动序列长度。g[i] 表示:以i 位置为结尾的所有子序列中,最后呈现 “ 下降” 状态下的最长摆动序列长度。状态转移方程。原创 2024-03-16 14:13:46 · 619 阅读 · 0 评论 -
动态规划7,等差数列划分,湍流子数组,唯一的子字符串,最长递增子序列
f[i] 表示:以i 位置为结尾的所有子数组中,最后呈现 “ 上升” 状态下的最长湍流数组的长度。g[i] 表示:以i 位置为结尾的所有子数组中,最后呈现 “ 下降” 状态下的最长湍流数组的长度。2.状态转移方程。原创 2024-03-13 13:52:29 · 944 阅读 · 0 评论 -
动态规划6,最大数组和,环形子数组最大和,乘积最大子数组
1.经验+题目要求dp[i]表示:以 i 位置为结尾的所有子数组中的最大和2.状态转移方程按长度来划分,如果长度为1,那么dp[i] = nums[i];如果长度大于1,那么当前位置的最大和就为 i-1 位置最大和 + 当前位置,dp[i] = dp[i-1] + nums[i];然后每一次都要取他们两个中的最大值。存在 dp[i-1] , 建表时候多建一格,dp[0]位置为0 就不影响后面的填表4 .从左往右填表。原创 2024-03-09 14:41:55 · 825 阅读 · 0 评论 -
动态规划5,粉刷房子,买卖股票的最佳时期
1.经验+题目要求dp[i][0] 表示:粉刷到 i 位置的时候,最后一个位置粉刷上红色,此时的最小花费。dp[i][1] 表示:粉刷到 i 位置的时候,最后一个位置粉刷上蓝色,此时的最小花费。dp[i][2] 表示:粉刷到 i 位置的时候,最后一个位置粉刷上绿色,此时的最小花费。2.状态转移方程因为相邻两个房子颜色不能相同,所以我们粉刷下一个位置只需要 找出上一个位置粉刷另外两种颜色最小花费即可。原创 2024-03-03 22:20:23 · 835 阅读 · 0 评论 -
动态规划4,打家劫舍问题,删除并获得点数
继续细化:f[i]表示:选择到i位置时候,nums[i]必选,此时的最高金额。g[i]表示:选择到i位置时候,nums[i]不选,此时的最高金额。如果 i 位置偷,那么i-1就不能偷,此时就是f[i] = g[i-1] + nums[i];如果 i 位置不偷,那么i-1就有两种情况,可以偷也可以不偷, 偷的话就是g[i] = f[i-1];不偷的话就是 g[i] = g[i-1];选出他们的最大值,就有了g[i] = max(f[i-1],g[i-1]);原创 2024-02-27 19:34:31 · 656 阅读 · 0 评论 -
动态规划3,地下城游戏
对于a思路来讲,我们需要上一步的两个位置的状态来更新下一个状态,就拿示例1来举例:我们要想从-2走出去,就需要3血量,但是无论走到下一步-3还是-5都会死,所以我们还会受到下两步的影响,所以这个思路不行。但是,又不能让血量为0或负数,所以每个dp[i][j]都需要取max(1,dp[i][j]), 如果为负数就更新为1。然后从1走向-5,我们要让所需的最小血量变为也就是6-1,为5,然后从-3走向3,变为2-(-3)为2,为5;然后从-2走向-3,变为5-(-2)即为7.然后从3走向1,变为5-3,为2,原创 2024-02-24 15:57:54 · 551 阅读 · 0 评论 -
动态规划入门2,最小路径问题,珠宝的最高价值
2.3.注意,对于第一行 dp[0][j],或者第一列 dp[i][0],由于都是在边界,所以只能为 1。4.从上到下填写每一行,每一行从左向右。int。原创 2024-02-24 15:05:28 · 365 阅读 · 0 评论 -
【算法】动态规划1,最小花费爬楼梯,解码方法
动态规划 , 英文名称 Dynamic Programming , 简称 DP , 不是具体的某种算法 , 是一种算法思想;原创 2024-02-20 19:30:33 · 212 阅读 · 0 评论