跳跃游戏Python解法
生活随笔
收集整理的這篇文章主要介紹了
跳跃游戏Python解法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
給定一個(gè)非負(fù)整數(shù)數(shù)組?nums?,你最初位于數(shù)組的?第一個(gè)下標(biāo)?。
數(shù)組中的每個(gè)元素代表你在該位置可以跳躍的最大長度。
判斷你是否能夠到達(dá)最后一個(gè)下標(biāo)。
列:
輸入:nums = [2,3,1,1,4] 輸出:true 解釋:可以先跳 1 步,從下標(biāo) 0 到達(dá)下標(biāo) 1, 然后再從下標(biāo) 1 跳 3 步到達(dá)最后一個(gè)下標(biāo)。 class Solution(object):def canJump(self, nums):""":type nums: List[int]:rtype: bool"""start, end = 0, 0 # 判斷位置,當(dāng)前能到達(dá)的最遠(yuǎn)位置n = len(nums) # 數(shù)組長度while start <= end and end < n-1: # 當(dāng)前位置不得超過能到達(dá)的最遠(yuǎn)位置,最遠(yuǎn)位置大于最多需要的步數(shù)則跳出判斷end = max(end, nums[start] + start) # 取上一層循環(huán)能達(dá)到的最遠(yuǎn)位置和當(dāng)前能達(dá)到的最遠(yuǎn)位置中的最大值start += 1 # 判斷下一個(gè)值return end >= n-1 # 最遠(yuǎn)位置超過到達(dá)最后一位下標(biāo)則返回True,反之返回False總結(jié)
以上是生活随笔為你收集整理的跳跃游戏Python解法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打家劫舍(首尾相连)Python解法
- 下一篇: 不同路径Python解法