Python 中的跳躍比賽 II
假設我們有一個數組,其中所有元素都是正數。最開始的起始點為索引 1。陣列中的每個元素表示在該位置我們的最大跳躍長度。我們的目的是用更少的跳躍次數到達最後一個格子。因此,如果陣列類似於 [2,3,1,1,4],那麼輸出將為 2,因為我們可以從 0 跳躍到索引 1,然後跳躍到索引 4,即最後一個索引。
為了解決這個問題,我們將按照以下步驟進行操作
end := 0, jumps := 0, farthest := 0
對於從 0 到長度為 nums – 1 的 i
將 farthest 更新為 farthest 和 nums[i] + i 中的最大值
如果 i 等於 end,並且 i 不等於長度為 nums – 1,那麼
將 jumps 增加 1
將 end 更新為 farthest
返回 jumps
示例
讓我們檢視以下實現來獲得更好的理解
class Solution(object): def jump(self, nums): end = 0 jumps = 0 farthest = 0 for i in range(len(nums)): farthest = max(farthest,nums[i]+i) if i == end and i != len(nums)-1: jumps+=1 end = farthest return jumps ob = Solution() print(ob.jump([2,3,1,1,4]))
輸入
[2,3,1,1,4]
輸出
2
廣告