Java implementa la recursividad + optimización de la violencia de secuencia de fibonacci

Recursividad violenta

public class Test {
    
    
    public static void main(String[] args) {
    
    
        for (int i = 0; i < 20; i++) {
    
    
            System.out.print(test(i) + ",");
        }
    }

    static int test(int a) {
    
    
        if (a == 0 || a == 1) return 1;
        return test(a - 1) + test(a - 2);
    }
}

Inserte la descripción de la imagen aquí

Solución recursiva con memo

public class Test {
    
    
    public static void main(String[] args) {
    
    
        int[] mono = new int[20];
        for (int i = 0; i < 20; i++) {
    
    
            System.out.print(test(mono, i) + "\t");
        }
    }

    static int test(int[] mono, int a) {
    
    
        if (a == 0 || a == 1) return 1;
        if (mono[a] != 0) return mono[a];
        return test(mono, a - 1) + test(mono, a - 2);
    }
}

Inserte la descripción de la imagen aquí

Solución iterativa de matriz dp

import java.util.Arrays;

public class Test {
    
    
    public static void main(String[] args) {
    
    
        int[] dp = new int[20];
        dp[0] = dp[1] = 1;
        for (int i = 2; i < 20; i++) {
    
    
            dp[i] = dp[i - 1] + dp[i - 2];
        }
        System.out.println(Arrays.toString(dp));
    }
}

Inserte la descripción de la imagen aquí

Compresión de estado basada en la solución iterativa de la matriz dp

public class Test {
    
    
    public static void main(String[] args) {
    
    
        for (int i = 0; i < 20; i++) {
    
    
            System.out.print(test(i) + " ");
        }
    }

    static int test(int a) {
    
    
        if (a == 0 || a == 1) return 1;
        int pre = 1;
        int curr = 1;
        int sum;
        for (int i = 1; i < a; i++) {
    
    
            sum = pre + curr;
            pre = curr;
            curr = sum;
        }
        return curr;
    }
}

Inserte la descripción de la imagen aquí
Equivale a reducir el tamaño de la tabla DP de n a 2

Supongo que te gusta

Origin blog.csdn.net/y1534414425/article/details/109203891
Recomendado
Clasificación