问题:给定一个非负的数组,数组中的元素值代表可以移动的距离,输出从数组起始位置到最后一个位置需要的最小移动次数
示例:
输入:[2,3,1,1,4]
输出:2
解决思路:遍历数组,从起始位置开始,考察该位置最大移动距离内的元素,找到这些元素中可移动到最远处的元素
Python代码:
class Solution(object): def jump(self, nums): """ :type nums: List[int] :rtype: int """ end = 0 max_jump = 0 times = 0 for i in range(len(nums)-1): max_jump = max(max_jump,nums[i]+i) if i == end: end = max_jump times += 1 return times