跳躍遊戲(python)

2021-10-24 11:55:58 字數 828 閱讀 1989

本篇文章記錄一下leetcode 上"跳躍遊戲"這兩道題目

我們可以遍歷這個陣列,然後更新可以跳到的最遠位置,如果可以跳到最後,返回true,否則返回false。

class solution:

def canjump(self, nums: list[int]) -> bool:

maxpos = 0

n = len(nums)

for i in range(n):

# 首先判斷當前位置是否可跳到

# 如果可以跳到,然後更新可以跳到的最遠位置

if i <= maxpos:

maxpos = max(maxpos, i + nums[i])

if maxpos >= n - 1:

return true

return false

我們可以在到達上一步可以到達的最遠位置時使得step加1

class solution:

def jump(self, nums: list[int]) -> int:

# 邊界條件

maxpos = 0

end = 0

minstep = 0

for i in range(len(nums)-1):

if i <= maxpos:

# 更新maxpos

maxpos = max(maxpos, i+nums[i])

if i == end:

minstep += 1

end = maxpos

return minstep

跳躍遊戲的python實現

給定乙個非負整數列表,假定你的初始位置為列表第乙個下標。列表中的每個元素代表你在那個位置能夠跳躍的最大長度。請確認你是否能夠跳躍到列表的最後乙個下標。例如 輸入 a 2,3,1,1,4 輸出 true 輸入 a 3,2,1,0,4 輸出 false 採用貪心演算法方式,主要思想就是從列表中的第乙個元...

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 輸入...