描述
给定一个非负整数数组,您最初定位在数组的第一个索引处。
数组中的每个元素表示该位置的最大跳转长度。
确定您是否能够到达最后一个索引。
样例
样例1
1 | 输入: [2,3,1,1,4] |
样例2
1 | 输入: [3,2,1,0,4] |
思路
- 动态规划,dp[i] = 2 表示当前在索引下标为 i 的石头上,并且还可以移动 2 步
- 求能移动到最大的距离,如果这个地方 nums[maxPos] == 0 表示不能到达最后一个石头
- 回溯,比较慢
代码
动态规划
1 | class Solution { |
找最远的位置
1 | class Solution { |
下面这个是上面想法的优化
1 | class Solution { |