斐切那波数列的优化

递归实现斐切那波数列

递归实现的斐波那切数列的时间复杂度是O(2^n)

public static int fib(int n) {
        if (n <= 1) return n;
        
        return fib(n - 1) + fib(n - 2);
    }
    

斐切那波数列的优化

此时的时间复杂度时O(n)

public static int fib(int n) {
        if (n <= 1) return n;
        
        int first = 0;
        int second = 1;
        for (int i = 0; i < n - 1; i++) {
            int sum = first + second;
            first = second;
            second = sum;
        }
        return second;
    }

你可能感兴趣的:(斐切那波数列的优化)