Titulo
Dada una matriz de enteros no negativos, inicialmente se encuentra en la primera posición de la matriz.
Cada elemento de la matriz representa la longitud máxima que puede saltar en esa posición.
Determine si puede alcanzar la última posición.
Ejemplo 1:
Entrada: [2,3,1,1,4]
Salida: verdadero
Explicación: Podemos saltar 1 paso desde la posición 0 a la posición 1, y luego saltar 3 pasos desde la posición 1 a la última posición.
Ejemplo 2
Entrada: [3,2,1,0,4]
Salida: falso
Explicación: Pase lo que pase , siempre alcanzará el índice 3. Pero la longitud máxima de salto de esta posición es 0, por lo que nunca puede llegar a la última posición.
Fuente:
enlace de LeetCode : https://leetcode-cn.com/problems/jump-game
Ideas
Encuentre la posición de 0 y juzgue si puede omitir 0
Código
class Solution:
def canJump(self, nums: List[int]) -> bool:
a=[j for j in range(len(nums)) if nums[j]==0]#找出所有列表中0的位置
l=0
while len(a)!=0:
b=a.pop()
for i in range(b):
if nums[i]<=b-i and nums[i]!=len(nums)-1 and b!=len(nums)-1:
l+=1
if l==b:
return False if len(nums)!=1 else True
l=0
return True