zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    BZOJ3575 [Hnoi2014]道路堵塞
    BZOJ4456/UOJ184 [Zjoi2016]旅行者
    BZOJ4455/UOJ185 [Zjoi2016]小星星
    BZOJ1036 [ZJOI2008]树的统计Count
    BZOJ2594 [Wc2006]水管局长数据加强版
    BZOJ3669/UOJ3 魔法森林(LCT)
    BZOJ1012:[JSOI2008]最大数
    洛谷【P1175】表达式的转换
    HDU4699:Editor
    BZOJ3039:玉蟾宫
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12733285.html
Copyright © 2011-2022 走看看