Python程式:查詢到達終點所需的最少跳躍次數
假設我們有一個數組nums,其中所有元素都為正數。我們位於索引0處。陣列中的每個元素代表該位置上的最大跳躍長度。我們的目標是以最少的跳躍次數到達最終索引(n-1,其中n是nums的大小)。例如,如果陣列是[2,3,1,1,4],則輸出為2,因為我們可以從索引0跳到索引1,然後跳到索引4,也就是最後一個索引。
為了解決這個問題,我們將遵循以下步驟:
- end := 0,jumps := 0,farthest := 0
- for i in range 0 to length of nums – 1
- 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([3, 4, 3, 0, 1]))
輸入
[3, 4, 3, 0, 1]
輸出
2
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP