給定乙個非負整數列表,假定你的初始位置為列表第乙個下標。
列表中的每個元素代表你在那個位置能夠跳躍的最大長度。
請確認你是否能夠跳躍到列表的最後乙個下標。
例如:輸入:
a = [2,3,1,1,4]
輸出:true
輸入:a = [3,2,1,0,4]
輸出:false
採用貪心演算法方式,主要思想就是從列表中的第乙個元素開始計算此元素所能到達的最遠的資料元素下標,如果後面有更遠的則替換max值,但如果列表長度比能達到的最遠元素max的值還大,說明此列表不可達到就返回「false」,否則返回「true」。以下是python實現的**:
#autor:liuguiru
def test(lis):
max = 0
length_lis = len(lis)
for i in range(length_lis-1):
max_c = i + lis[i]
if max_c > max:
max = max_c
if max >= (length_lis-1):
return true
return false
if __name__ == '__main__':
lis = eval(input("請輸入列表:"))#輸入格式例如:[2,0,2,0,1]
result = test(lis)
print(result)
跳躍遊戲(python)
本篇文章記錄一下leetcode 上 跳躍遊戲 這兩道題目 我們可以遍歷這個陣列,然後更新可以跳到的最遠位置,如果可以跳到最後,返回true,否則返回false。class solution def canjump self,nums list int bool maxpos 0 n len num...
LintCode 跳躍遊戲 I VS跳躍遊戲 II
陣列中的每個元素代表你在那個位置可以跳躍的最大長度。判斷你是否能到達陣列的最後乙個位置。分析 方法一 基於動態規劃的做法,時間複雜度o n 2 陣列dp i 表示能否到達下標為i的位置,對於從下標i 1開始的每乙個位置,都從下標j 0開始到i 1判斷能否到達j,並且判斷從j開始最遠能否跳到或超過i的...
leetcode 55 跳躍遊戲 python
給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 我們可以先跳 1 步,從位置 0 到達 位置 1,然後再從位置 1 跳 3 步到達最後乙個位置。示例 2 輸入...