演算法題 8 跳躍遊戲

2022-04-23 02:17:19 字數 1519 閱讀 5577

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。

陣列中的每個元素代表你在該位置可以跳躍的最大長度。

判斷你是否能夠到達最後乙個位置。

示例 1:

輸入: [2,3,1,1,4]

輸出: true

解釋: 從位置 0 到 1 跳 1 步, 然後跳 3 步到達最後乙個位置。

示例 2:

輸入: [3,2,1,0,4]

輸出: false

解釋: 無論怎樣,你總會到達索引為 3 的位置。但該位置的最大跳躍長度是 0 , 所以你永遠不可能到達最後乙個位置。

**如下:

1

class

solution:

2def

canjump(self, nums):

3"""

4:type nums: list[int]

5:rtype: bool

6"""

7 max_reach,last_index=0,len(nums)-1

8for i,x in

enumerate(nums):

9if max_reach

10return

false

11if max_reach>=last_index:

12return

true

13 max_reach=max(max_reach,i+x)

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。

陣列中的每個元素代表你在該位置可以跳躍的最大長度。

你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。

示例:

輸入: [2,3,1,1,4]

輸出: 2

解釋: 跳到最後乙個位置的最小跳躍數是2

從下標為 0 跳到下標為 1 的位置,跳1步,然後跳3步到達陣列的最後乙個位置。

說明:

假設你總是可以到達陣列的最後乙個位置。

思路如下:

**如下:

1

class

solution:

2def

jump(self, nums):

3"""

4:type nums: list[int]

5:rtype: int

6"""

7 start=end=step=0

8while end:

9 start,end=end+1,max(i+nums[i] for i in range(start,end+1))

10 step+=1

11return step

位元組跳動演算法題跳躍遊戲

位元組跳動是比較注重演算法類的題目,都必須要手撕 的。這次遇到的題目如下 55.跳躍遊戲 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 我們可以先跳 1 步...

演算法 跳躍遊戲

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。leetcode 解題思路 class solution return f n 1 解題思路 維護乙個範圍內的最少跳躍次數,當超出該範圍,那就不得不...

力扣演算法題 045跳躍遊戲二

1 include 000庫函式.h 2 34 考慮當前最遠能到什麼地方,例如2,3,1,1,4,5 首先只考慮a 0 2,即最遠可以到a 2 然後從1到2中找下乙個可到的最遠點,6 即a 1 可以到達a 4 此時找到結果,步數記錄為2。若接著考慮,7 下一次應該從3 4裡面找乙個最遠即a 4 可達...