zoukankan      html  css  js  c++  java
  • Leetcode NO.509 Fibonacci Number 斐波那契数

    1.问题描述

    斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

    ​ F(0) = 0,F(1) = 1
    ​ F(n) = F(n - 1) + F(n - 2),其中 n > 1
    ​ 给你 n ,请计算 F(n) 。

    2.测试用例

    示例 1
    输入:2
    输出:1
    解释:F(2) = F(1) + F(0) = 1 + 0 = 1
    
    示例 2
    输入:3
    输出:2
    解释:F(3) = F(2) + F(1) = 1 + 1 = 2
    
    示例 3
    输入:4
    输出:3
    解释:F(4) = F(3) + F(2) = 2 + 1 = 3
    

    3.提示

    • 0 <= n <= 30

    4.代码

    1.递归
    code
    public int fibWithRecursion(int n) {
        if( n == 0){
            return 0;
        }
        if (n == 1 || n == 2) {
            return 1;
        }
        return fibWithRecursion(n - 1) + fibWithRecursion(n - 2);
    }
    
    复杂度
    * 时间复杂度 O(2^n)
    * 空闲复杂度 O(n)
    
    2.动态规划
    code
    public int fibWithDpOpt(int n) {
        if( n == 0){
            return 0;
        }
        if (n == 1 || n == 2) {
            return 1;
        }
        int pre = 1;
        int suf = 1;
        for (int i = 2; i < n; i++) {
            int tmp = suf;
            suf = pre + suf;
            pre = tmp;
        }
    
        return suf;
    }
    
    复杂度
    * 时间复杂度 O(n)
    * 空间复杂度 O(1)
    
  • 相关阅读:
    RA-Embedding-based Retrieval in Facebook Search
    RA-Recommending What Video to Watch Next: A Multitask Ranking System
    家事杂谈-2
    工作体会-3
    CCS
    CCS
    CCS
    CCS
    CCS
    CCS
  • 原文地址:https://www.cnblogs.com/worldline/p/15769335.html
Copyright © 2011-2022 走看看