美文网首页
Q45 - Medium - 跳跃游戏 II

Q45 - Medium - 跳跃游戏 II

作者: 1f872d1e3817 | 来源:发表于2019-02-22 00:08 被阅读0次

给定一个非负整数数组,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

你的目标是使用最少的跳跃次数到达数组的最后一个位置。

示例:

输入: [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2。
从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。

class Solution:
    def jump(self, nums: 'List[int]') -> 'int':
        if len(nums) == 1:
            return 0
        return self.dfs(0, nums)
    
    def dfs(self, i, nums):
        if i >= len(nums) - 1:
            return 0
        idx = 0
        for j in range(1, nums[i]+1):
            if i + j == len(nums) - 1:
                return 1
            if nums[j+i] + j >= nums[idx+i] + idx:
                idx = j
        return self.dfs(idx+i, nums) + 1
class Solution:
    def jump(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """ 
        if len(nums) == 1:
            return 0
        if len(set(nums)) == 1:
            return (len(nums)-2)//nums[0]+1
        pos = [len(nums)-1]
        temp = len(nums)-1
        count = 0
        while 0 not in pos:
            count += 1
            for j in range(temp):
                if nums[j] + j >= temp:
                    temp = j
                    pos.append(j)
                    break
        return count

相关文章

  • Q45 - Medium - 跳跃游戏 II

    给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是...

  • 跳跃游戏 II

    题目描述 https://leetcode-cn.com/problems/jump-game-ii/ 解 思路 ...

  • Q55 - Medium - 跳跃游戏

    给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否...

  • 贪心2

    demo4a:跳跃游戏(medium)----(贪心) 来源:leetcode 55 思路:找第一步能跳跃到的最远...

  • LeetCode 45. 跳跃游戏 II | Python

    45. 跳跃游戏 II 题目来源:https://leetcode-cn.com/problems/jump-ga...

  • LeetCode | 0113. Path Sum II路径总和

    LeetCode 0113. Path Sum II路径总和 II【Medium】【Python】【回溯】 Pro...

  • 45. 跳跃游戏 II

    最近比较忙,最近两周都没怎么刷题,趁着周末,小刷两道怡下情哈哈 自己解法 这题因为还有印象,就是贪婪算法,去算当前...

  • 45. 跳跃游戏 II

    给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是...

  • 跳跃游戏 II 算法swift

    题目描述 给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的...

  • 45. 跳跃游戏II

    题目描述 给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的...

网友评论

      本文标题:Q45 - Medium - 跳跃游戏 II

      本文链接:https://www.haomeiwen.com/subject/xsnjyqtx.html