思路:
设置一个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。