LeetCode No.55 Jump Game

题目:

动态规划问题。nums[i]代表可以前进多少步。判断能否从nums[0]走到nums末尾。

思路:

假设从nums[0]可以走到nums[i+1],那么从nums[0]肯定可以走到nums[i],所以从数组末尾向前遍历。设置destination(目的地)为数组的最后一个元素的index,向前遍历。比如,若destination=i+1,而从nums[i]可以跳到destination,此时更新destination。遍历完后,若destination为0,则证明可以从nums[0]跳到最后。

代码:

class Solution:
    def canJump(self, nums):
        destination = len(nums) - 1
        i = destination - 1
        while i >= 0:
            if nums[i] >= destination - i:
                destination = i
            i -= 1
        if destination == 0:
            return True
        else:
            return False

结果:

猜你喜欢

转载自blog.csdn.net/qq_39178023/article/details/80158216