Leetcode练习(Python):数组类:第45题:给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。

Leetcode练习(Python):数组类:第45题:给定一个非负整数数组,你最初位于数组的第一个位置。  数组中的每个元素代表你在该位置可以跳跃的最大长度。  你的目标是使用最少的跳跃次数到达数组的最后一个位置。

题目:给定一个非负整数数组,你最初位于数组的第一个位置。  数组中的每个元素代表你在该位置可以跳跃的最大长度。  你的目标是使用最少的跳跃次数到达数组的最后一个位置。

思路:设定一个边界,看看哪种方式可以跳的方式最远。

程序:

class Solution:
    def jump(self, nums: List[int]) -> int:
        length = len(nums)
        if length <= 1:
            return 0
        boudary = 0
        auxiliary_length = 0
        step = 0
        for index in range(length):
            auxiliary_length = max(auxiliary_length, nums[index] + index)
            if index == boudary:
                boudary = auxiliary_length
                step += 1
            if boudary == length - 1:
                break

        return step