• 剑指Offer_07_斐波那契数列


    题目描述

    大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
    n<=39.

    解题思路

    利用递归求解,动态规划保存已求值的结果,提高效率。
    利用循环,每次根据保存和前两个值求当前值。

    实现

    1. 循环
    public class Solution {
        public int Fibonacci(int n) {
    		if(n == 0) return 0;
            if(n == 1) return 1;
            int fn = 1,fn_1 = 1;
            for(int i = 3; i <= n; i++){
                int t = fn;
                fn = fn + fn_1;
                fn_1 = t;
            }
            return fn;
        }
    }
    
    1. 递归
    public class Solution {
        public int Fibonacci(int n) {
            if (n == 0) return 0;
            int[] dp = new int[n + 1];
            for (int i = 0 ; i < n + 1; i ++){
                dp[i] = -1;
            }
    
            dp[0] = 0;
            dp[1] = 1;
    
            return fibonacci(n, dp);
        }
    
        private int fibonacci(int n, int[] dp) {
            if (dp[n] >= 0) return dp[n];
            else{
                return dp[n] = fibonacci(n - 1, dp) + fibonacci(n - 2, dp);
            }
        }
    }
    
  • 相关阅读:
    爱摘苹果的小明
    盗梦空间
    九九乘法表
    谁是最好的Coder
    画图
    黑色帽子
    a letter and a number
    运维开发面试题
    python 守护进程daemon
    kubernets 应用部署
  • 原文地址:https://www.cnblogs.com/ggmfengyangdi/p/5763677.html
Copyright © 2020-2023  润新知