跳跃游戏2

给你一个非负整数数组 nums ,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 假设你总是可以到达数组的最后一个位置。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/jump-game-ii 著作权归领扣网络所有。商业转载请联系官方授权,非商业



// [3,2,1,0,4]
func jump(nums []int) int {
    if len(nums) <= 1 {
        return 0
    }

    end := len(nums) - 1
    pre := end
    cnt := 0
    for end != 0 {
        for i := end ; i >=0 ; i-- {
            if nums[i] + i >= end {
                pre = i 
                continue
            }
        }
        if end == pre {
            return 0 
        }
        end = pre 
        cnt ++
    }

  return cnt 
}

Last updated

Was this helpful?