LeetCode - salto-juego

Q: Dado un array entero no negativo, que en la posición de un primer elemento de la matriz de
elementos de la matriz representa la longitud máxima en esta posición se puede saltar
determina si se obtiene al último elemento de la matriz
, por ejemplo,
A = [2 , 3,1,1,4], vuelve a verdad.
a = [3,2,1,0,4], devuelve falso.

UNA:

public static boolean canJump(int[] A) {
        if (A.length <= 1)
            return true;
        int index = 0;
        boolean[] flag = new boolean[A.length];
        Arrays.fill(flag, false);
        flag[0] = true;
        int n;
        while (flag[index]) {
            n = index + A[index];
            if (n >= A.length - 1)
                return true;
            for (int i = index; i <= n; i++) {
                flag[i] = true;
            }
            index++;
        }
        return false;
    }

Q: dada una matriz de enteros no negativos, que en la posición de un primer elemento de la matriz
elementos de la matriz representa la longitud máxima en esta posición puede saltar
su objetivo es utilizar el menor número de saltos para alcanzar el último elemento de la matriz posición
, por ejemplo,
para dar la matriz a = [2,3,1,1,4]
pasó a saltar al último elemento de la matriz a una posición de dos veces. (Desde el subíndice 0 1 alcanza la posición de la longitud de la posición de índice hop 1, y luego salta a la posición del último elemento de longitud 3 array)

UNA:

    public int jump(int[] A) {
        if (A.length <= 1)
            return 0;
        int[] num = new int[A.length];
        num[0] = 0;
        for (int i = 1; i < A.length; i++) {
            int min = Integer.MAX_VALUE;
            for (int j = 0; j < i; j++) {
                if (j + A[j] >= i)
                    min = Math.min(min, num[j] + 1);
                num[i] = min;
            }
        }
        return num[A.length - 1];
    }

Supongo que te gusta

Origin www.cnblogs.com/xym4869/p/12658384.html
Recomendado
Clasificación