题目描述

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

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

示例

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

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

方法一:递推求解

class Solution {public:int fib(int n) {vector<int> f(31);f[0]=0;f[1]=1;for(int i=2;i<=n;i++) f[i]=f[i-1]+f[i-2];return f[n];}
};

复杂度分析:

  • 时间复杂度:O(n),进行了一个循环
  • 空间复杂度:O(n),创建了一个n大小的数组

方法二:递归求解

class Solution {public:int fib(int n) {if(n==0) return 0;if(n==1) return 1;return fib(n-1)+fib(n-2);}
};

复杂度分析:

  • 时间复杂度:O(2^n),递归求解,时间长,如果n稍微大点就会超时了。
  • 空间复杂度:O(n),经过n次压栈。

力扣-509 裴波那契数相关推荐

  1. 力扣算法 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

    学习内容 力扣算法 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 具体内容 509. 斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 .该数列由 0 ...

  2. 【快乐水题】509. 斐波那契数

    原题: 力扣链接:509. 斐波那契数 题目简述: 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 .该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和.也就是: F( ...

  3. LeetCode-动态规划基础题-509. 斐波那契数

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

  4. D38| DP理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

    DP理论基础 重要知识点: 1.动规和贪心的区别:动规是由前一个状态推导出来的,而贪心是局部直接选最优的 2.动规五部曲: 1)确定dp数组(dp table)以及下标的含义 2)确定递推公式 3)d ...

  5. 代码随想录算法训练营第三十八天 | 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯。

    Leetcode 509. 斐波那契数 题目链接:509. 斐波那契数 class Solution {public:int fib(int n) {if(n <= 1)return n;int ...

  6. [leetcode]509. 斐波那契数

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

  7. leetcode 509. 斐波那契数

    方法一:递归 使用递归计算给定整数的斐波那契数. 效率最差但是最简单的方法,会重复计算,就不实现了. 方法二:记忆化自底向上的方法 方法三:自底向上进行迭代 方法四:矩阵求幂 public class ...

  8. leetcode 509. 斐波那契数(dfs)

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

  9. leetcode 509. 斐波那契数(Fibonacci Number)

    目录 题目描述: 示例 1: 示例 2: 示例 3: 解法: 题目描述: 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列.该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的 ...

  10. 509. 斐波那契数

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

最新文章

  1. 用Spring的BeanUtils前,建议你先了解这几个坑!
  2. 经典论文复现 | 基于深度卷积网络的图像超分辨率算法
  3. Java虚拟机:深入详细分析Java ClassLoader原理与源码
  4. Python机器学习---2.聚类算法理论部分
  5. 预处理器sass_Sass — Web的预处理器装饰
  6. 2021安徽省高考成绩怎么查询系统,2021年安徽省教育招生考试院成绩查询登录入口...
  7. Android学习总结(1)——好的 Android 开发习惯
  8. android wear 同步应用,Android Wear发布 突出语音及同步功能
  9. django 指令  基于the django book
  10. Oracle 客户端连接server 的方法
  11. 【numpy】argmax参数辨析(axis=0,axis=1,axis=-1)
  12. 水氢发动机应该叫氢能发动机、铝水制氢发动机
  13. [Golang]解决Map的并发性问题:sync.Map
  14. 【hdu1018】Big Number(求n!的位数----斯大林公式/log函数)
  15. c语言必背100代码,C语言代码大全(c语言必背项目代码)
  16. javascript 字符串的排列与组合
  17. 计算机网络 信道复用技术
  18. 用python实现小说的平均句长,词性占比,关键词,标点符号,词形统计
  19. Hadoop之——重新格式化HDFS的方案
  20. jsp异常 The JSP specification requires that an attribute name is preceded by whitespace

热门文章

  1. Spring REST实践之HATEOAS
  2. 2.5.1 命令与参数
  3. C++primer 10.5.1节练习
  4. 《Pro Ogre 3D Programming》 读书笔记 之 第四章 开始使用OGRE (转)
  5. pip 安装 pytorch环境
  6. 阿里达摩院金榕:从技术到科学,中国AI向何处去?
  7. 因果推断综述及基础方法介绍(二)
  8. 【收藏】10个重要问题概览Transformer全部内容
  9. 用Siamese和Dual BERT来做多源文本分类
  10. 初学者|一文读懂命名实体识别