LeetCode 55. Juego de saltos (codicioso) -JavaScript

Enlace de pregunta: https://leetcode-cn.com/problems/jump-game/


Descripción del Título:


Ideas de resolución de problemas:

Para el elemento en la posición i, la posición más lejana a la que puede saltar es i + nums [i]. Si la posición más lejana de un elemento salta más allá o es igual a la posición al final de la matriz, devuelve verdadero.

Es decir, atravesamos los elementos de la matriz a su vez y mantenemos una posición más lejana en tiempo real. Para el elemento atravesado actual, si el elemento está en la posición más lejana, significa que el elemento es alcanzable.


Código:

/**
 * @param {number[]} nums
 * @return {boolean}
 */
var canJump = function(nums) {
    if (nums.length == 1) {
        return true;
    }
    let maxStep;
    maxStep = nums[0];
    for (let i = 1; i < nums.length; i++) {
        if (maxStep >= nums.length - 1) {
            return true;
        }
        if (i <= maxStep && i + nums[i] > maxStep) {
            maxStep = i + nums[i];
        }
    }
    return false;
};

Complejidad del tiempo: O (n)

Complejidad espacial: O (1)

Supongo que te gusta

Origin blog.csdn.net/ySFRaabbcc/article/details/110817084
Recomendado
Clasificación