题目:原题链接(困难)

标签:数组、贪心算法

解法 时间复杂度 空间复杂度 执行用时
Ans 1 (Python) O ( N ) O(N) O(N) O ( 1 ) O(1) O(1) 40ms (99.70%)
Ans 2 (Python)
Ans 3 (Python)

解法一:

class Solution:
    def jump(self, nums: List[int]) -> int:
        size = len(nums)

        end = 0  # 上一步可达位置
        far = 0  # 当前步的下一步的最远距离
        ans = 0  # 当前步数

        for i in range(size - 1):
            # 计算当前步可达到的最远位置
            if i + nums[i] > far:
                far = i + nums[i]

            # print(i, end, far, "->", ans)
            # 上一步已经迈完了
            if i == end:
                ans += 1
                end = far

        return ans