LeetCode solución a un problema | 45. Jump Juego II (juego de saltos Greedy C ++)

Título Descripción (dificultad)

vínculo del título original
Aquí Insertar imagen Descripción

algoritmo

(Greedy) la ( norte ) O (n)

Cada vez que se actualiza la distancia máxima, a continuación, en cada paso del salto puede variar como una gama, cada vez yo = = mi norte re i == final , entonces tiene que saltar un paso, si mi norte re fin mayor o igual s yo de mi - 1 tamaño - 1 , puede salir del bucle for
Nota: size = retorno directo 0:01
Aquí Insertar imagen Descripción

El tiempo es la complejidad la ( norte ) O (n) , la complejidad espacial es la ( 1 ) O (1)

código C ++

class Solution {
public:
    int jump(vector<int> &nums) {
        
        int steps = 0;
        int end = 0;
        int maxPosition = 0;
        if (nums.size() <= 1) return 0;
        for (int i = 0; i < nums.size(); i++) {
            maxPosition = max(maxPosition, i + nums[i]);
            if (i == end) {
                end = maxPosition;
                steps++;
                if (end >= nums.size() - 1) break;
            }
        }

        return steps;
    }
};

Escrito en la última : mi blog principalmente en el campo de los conocimientos de las ciencias resume equipo de pensamiento y opinión, para escribir cada blog es fácil de entender mi objetivo, el intercambio de tecnología y el conocimiento es un placer , y yo la bienvenida a todos junto con el intercambio de aprendizaje, no puede haber ninguna duda en la zona de comentarios, sino también mirar hacia adelante a un profundo intercambio con su (^ ∀ ^ ●)

Publicados 308 artículos originales · ganado elogios 149 · Vistas de 150.000 +

Supongo que te gusta

Origin blog.csdn.net/qq_43827595/article/details/105069941
Recomendado
Clasificación