描述

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

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

思路一:递归

时间复杂度:O(2^n)
空间复杂度:O(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(n)
空间复杂度:O(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);vector<int> dp(n+1); //用来存每次动态规划之后的值dp[0]=0;dp[1]=1;       //动态规划的初始条件for(int i=2;i<dp.size();i++){dp[i] = dp[i-1]+dp[i-2];}return dp[n];}
};

优化一下代码

只需要维护两个值,不需要整个序列
时间复杂度:O(n)
空间复杂度:O(1)

class Solution {public:int fib(int n) {if(n==0) return 0;if(n==1) return 1;// return fib(n-1)+fib(n-2);vector<int> dp(2); //用来存每次动态规划之后的值dp[0]=0;dp[1]=1;       //动态规划的初始条件for(int i=2;i<=n;i++){// dp[i] = dp[i-1]+dp[i-2];int sum=dp[0]+dp[1];dp[0]= dp[1];dp[1]=sum;}return dp[1];}
};

LeetCode-动态规划基础题-509. 斐波那契数相关推荐

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

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

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

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

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

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

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

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

  5. leetcode系列-509.斐波那契数

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

  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 开始,后面的每一项数字都是前面两项数字的 ...

最新文章

  1. SpringMVC之源码分析--LocaleResolver和ThemeResolver应用
  2. Django默认用户认证系统和用户模型类
  3. SharePoint2016如何使用策略进行文档归档
  4. AtCoder Regular Contest 063 E - Integers on a Tree 构造 + 二分图染色
  5. 12月 Web 服务器调查:nginx 增长最快,微软市场份额最高
  6. 在iphone开发中的get请求和post请求
  7. 开源icon、SVG、字体图标库收集
  8. 深入原理64式:39 线性代数公式总结
  9. java nio为什么是非阻塞_Java nio都是非阻塞IO么?并非如此
  10. 存根类 Stub详解
  11. matlab声音处理
  12. Jenkins使用6--jenkins git timeout
  13. 解决客户之间的矛盾-生米煮成熟饭
  14. 用于视觉问答的基于关系推理和注意力的多峰特征融合模型《Multimodal feature fusion by relational reasoning and attention for VQA》
  15. 金融学具体包括什么专业,就业方向?
  16. KeyStore秘钥库
  17. Quartus II11.0破解注意
  18. [前端项目]微信小程序 小商城
  19. Arcmap10.0 提取单个流域范围
  20. 天猫详情页设计思路分析篇

热门文章

  1. 二叉树中如何求根节点到任意节点的路径?
  2. kafka 同步提交 异步_腾讯游戏工程师分享:简单理解 Kafka 的消息可靠性策略
  3. 设置行间距_Word涨薪第五十四式:解决无法调整行间距的情况
  4. android circleimageview 导入到eclipse,android项目从Eclipse迁移到Android studio中常见问题解决方法.pdf...
  5. linux c 多态原理,看了所谓的面向对象中靠继承多态实现的所谓重用 哥笑了
  6. 用加法器构造能够实现连续加法的电路
  7. 游戏服务器哪个系统困难些,游戏服务器哪个系统困难些
  8. 后端 消息 转发_SAP PO 消息报文应用2例(永久保存SAP PO中间件消息之四)
  9. mybatis mysql 乐观锁_基于tx.mapper实现的mysql乐观锁
  10. 广播,实现强制下线功能(项目文件已上传GitHub)