[LeetCode en Python] 45 (H) juego de salto ii Juego de salto II

Titulo

https://leetcode-cn.com/problems/jump-game-ii/

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.
Su objetivo es alcanzar la última posición de la matriz con el menor número de saltos.

Ejemplo:

Entrada: [2,3,1,1,4]
Salida: 2
Explicación: El número mínimo de saltos a la última posición es 2.
  Salte del índice 0 a la posición del índice 1, salte 1 paso, luego salte 3 pasos para llegar a la última posición de la matriz.

Explicación

Suponga que siempre puede alcanzar la última posición de la matriz.

Ideas para resolver problemas

    index   0 1 2 3 4
    nums    2 3 1 1 4
    step    0 1 1 2 2
    cur_end 0 2 2 4 4
    max_end 2 4 4 4 8
  • Tome el ejemplo de arriba
  • step representa el número mínimo de pasos para alcanzar esta posición, respectivamente [0,1,1,2,2]
  • Luego, lo anterior se puede dividir en 3 segmentos, cur_end se usa para registrar el subíndice del borde derecho bajo el número de paso actual
  • Al atravesar, cuando cruzo cur_end, debe actualizar cur_end al límite máximo actual max_end y step ++
  • La actualización de max_end debe colocarse después de la actualización de cur_end
  • Aunque no hay mucho código, de hecho esta pregunta es más problemática de lo que pensaba ...

Código

class Solution:
    def jump(self, nums: List[int]) -> int:

        # - example
        # 
        # index   0 1 2 3 4
        # nums    2 3 1 1 4
        # step    0 1 1 2 2
        # cur_end 0 2 2 4 4
        # max_end 2 4 4 4 8

        step = 0
        cur_end, max_end = 0, 0
        
        for i, n in enumerate(nums):
            # - update cur_end after last cur_end
            if i == cur_end + 1:
                cur_end = max_end
                step += 1

            # - update max_end
            max_end = max(max_end, i+n)
    
        return step

Supongo que te gusta

Origin www.cnblogs.com/journeyonmyway/p/12729615.html
Recomendado
Clasificación