Python程式:檢查能否從索引0到達最後一個位置
假設我們有一個名為nums的數字列表,每個數字表示我們可以跳躍的最大步數;我們必須檢查能否從索引0開始到達最後一個索引。
因此,如果輸入類似於nums = [2,5,0,2,0],則輸出為True,因為我們可以從索引0跳到1,然後從索引1跳到末尾。
為了解決這個問題,我們將遵循以下步驟:
n := nums的大小
arr := 一個大小為n的陣列,並填充為false
arr[n - 1] := True
對於i從n - 2到0,遞減1,執行:
如果arr[從索引i + 1到i + nums[i]]中的任何一個為真,則arr[i] := true
返回arr[0]
讓我們來看下面的實現,以便更好地理解:
示例
class Solution: def solve(self, nums): n = len(nums) arr = [False] * n arr[n - 1] = True for i in range(n - 2, -1, -1): arr[i] = any(arr[i + 1 : i + nums[i] + 1]) return arr[0] ob = Solution() nums = [2,5,0,2,0] print(ob.solve(nums))
輸入
[2,5,0,2,0]
輸出
True
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP