LeetCode Hot100 动态规划 55. 跳跃游戏

本文详细解析LeetCode热门题目55 - 跳跃游戏的动态规划解法,通过示例解释状态转移方程,强调在计算过程中必须考虑能否到达当前格子的重要性。
摘要由CSDN通过智能技术生成

分析:例 nums=[5,3,2,0,8,10]

1 .建立dp[]数组,里面记录可以跳的最远的格子

i 表示格子:第 0 格 ,第 1 格,第 2 格,......,第 nums.length-1 格

dp[0] = i + nums[i] = 0 + 5 = 5,即在i = 0 处最远可以跳到 i=5的格子

dp[1] = i + nums[i] = 1 + 3 = 4,即在i = 1 处最远可以跳到 i=4的格子

dp[1]只可以跳到i = 4,而dp[0]可以跳到i=5  很明显 dp[0] > dp[1]

(我在 1 格子都没有上一个 0 格子跳得远,所以我肯定最后选择在 0 格子跳,而不是 1 格子跳)

2. 即,考虑到状态转移方程,所以dp[1] = max(dp[0],1+nums[1]) = max(5,4) = 5

dp[i] = max(dp[i-1],i+nums[i]) 

3. 最重要的! 最重要的! 最重要的! 最重要的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值