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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 Leetcode練習(Python):數組類:第55題:給定一個非負整數數組,你最初位於數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最后一個位置。 在排序數組中查找元素的第一個和最后一個位置(給定一個按照升序排列的整數數組 nums,和一個目標值 target。找出給定目標值在數組中的開始位置和結束位置。) Leetcode練習(Python):數組類:第189題:給定一個數組,將數組中的元素向右移動 k 個位置,其中 k 是非負數。 在數組中查找元素的第一個和最后一個位置 [leetcode] 34. 在排序數組中查找元素的第一個和最后一個位置(Java) Leetcode練習(Python):數組類:第34題:給定一個按照升序排列的整數數組 nums,和一個目標值 target。找出給定目標值在數組中的開始位置和結束位置。 你的算法時間復雜度必須是 O(log n) 級別。 如果數組中不存在目標值,返回 [-1, -1]。 C#把數組中的某個元素取出來放到第一個位置 [LeetCode] 34. Find First and Last Position of Element in Sorted Array 在有序數組中查找元素的第一個和最后一個位置 給定一個正整數數組,設為nums,最大為100個成員,求從第一個成員開始,正好走到數組最后一個成員,所使用的最少步驟數。 Leetcode練習(Python):數組類:第53題:給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。進階: 如果你已經實現復雜度為 O(n) 的解法,嘗試使用更為精妙的分治法求解。
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM