
思路:
设置一个dist变量保存目前能到达的最大距离,从i=0往后遍历到i = nums.length-1(最后一个元素不考虑)。当遍历到的 nums[ i ]下标 i 小于等于dist 时,
计算从该位置能到达的最大距离 d = nums[ i ] + i . 如果d>dist ,就将dist 更新为d。
例:
{ 2,3,1,1,4} dist = 0
i = 0 : i<=dist dist = max( i+nums [ i ], dist) = 2
i = 1 : i<=dist dist = max( i+nums [ i ], dist) = 4
i = 2 : i<=dist dist = max( i+nums [ i ], dist) = 4
i = 3 : i<=dist dist = max( i+nums [ i ], dist) = 4
遍历结束,如果dist>=nums.length-1 说明可以从第一个元素到达最后一个元素,返回true。如果dist<nums.length-1,说明从第一个元素不能到达最后一个元素, 返回false。
本文介绍如何使用动态规划算法求解给定数组中,从第一个元素出发,每个位置可以加当前位置数值并前进,目标是找到最大可达最后一个元素的距离。通过示例和步骤详细解析了问题求解过程。
1882

被折叠的 条评论
为什么被折叠?



