LeetCode 演算法題庫 55 跳躍遊戲

2021-10-04 12:35:40 字數 2644 閱讀 6561

題目描述:

解題思路:

class

solution

:def

canjump

(self, nums: list[

int])-

>

bool:if

len(nums)==1

:return

true

max_location =

0for i in

range

(len

(nums)-1

):if max_location < i:

return

false

temp = nums[i]

+ i if temp > max_location:

max_location = temp

if max_location >=

len(nums)-1

:return

true

return

false

這裡我們可以對上面的**進行一點點優化,因為上面的**它需要執行遍歷整個陣列,而我們通過分析這個題目,我們可以發現有可能乙個nums有很多種方法能夠完成這個跳躍遊戲,所以我們只需要求出一種情況,就可以斷定這個遊戲成功。那麼我們就可以不需要全部遍歷這個陣列,只要找到乙個max_location能夠滿足條件,就可以返回true了。這裡我們就做了乙個小改變,把判斷語句放入for迴圈中就可以了。雖然提交後速度跟上面差別不大,但我覺得如果陣列長度變長,時間複雜度會大大降低,差別就會顯現出來。

LeetCode演算法題庫 兩數之和

給定乙個整數陣列 nums 和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。注意 你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。public static int twosum int nums,int target map....

leetcode演算法練習 55 跳躍遊戲

所有題目源 git位址 題目給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2 3,1 1,4 輸出 true 解釋 我們可以先跳 1 步,從位置 0 到達 位置 1 然後再從位置 1 跳 3 步到達...

演算法實踐 leetcode55 跳躍遊戲

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。輸入 2,3,1,1,4 輸出 true 解釋 我們可以先跳 1 步,從位置 0 到達 位置 1,然後再從位置 1 跳 3 步到達最後乙個位置。輸入 3,2,1,0,4...