leetcode 每日一题 45. 跳跃游戏 II

贪心算法

思路:

从头开始遍历数组,用end记录当前步所能到达的截止位置,maxPos记录下一步所能到达的最大位置,当遍历到当前步截止位置时,步数加一,end更新为下一步所能到达的最大位置,继续遍历。

代码:

class Solution:
    def jump(self, nums: List[int]) -> int:
        n = len(nums)
        maxPos, end, step = 0, 0, 0
        for i in range(n - 1):
            if maxPos >= i:
                maxPos = max(maxPos, i + nums[i])
                if i == end:
                    end = maxPos
                    step += 1
        return step

 

posted @ 2020-05-27 11:04  nil_f  阅读(118)  评论(0编辑  收藏  举报