当前位置: 首页 > news >正文

剑指 Offer(第2版)面试题 10:斐波那契数列

剑指 Offer(第2版)面试题 10:斐波那契数列

  • 剑指 Offer(第2版)面试题 10:斐波那契数列
    • 解法1:递归
    • 解法2:动态规划
    • 解法3:动态规划 - 空间优化

剑指 Offer(第2版)面试题 10:斐波那契数列

题目来源:21. 斐波那契数列

解法1:递归

代码:

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

复杂度分析:

时间复杂度:O(n)。

空间复杂度:O(n)。

解法2:动态规划

代码:

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

复杂度分析:

时间复杂度:O(n)。

空间复杂度:O(n)。

解法3:动态规划 - 空间优化

用 3 个变量就能代替之前的动态规划数组。

代码:

class Solution {
public:int Fibonacci(int n) {int first = 0, second = 1;while(n--){int res = first + second;first = second;second = res;}return first;}
};

复杂度分析:

时间复杂度:O(n)。

空间复杂度:O(1)。

http://www.lryc.cn/news/247848.html

相关文章:

  • Debian 12 / Ubuntu 22.04 安装 Docker 以及 Docker Compose 教程
  • Spark_spark参数配置优先级
  • ElasticSearch之Search settings
  • 二十二、数组(4)
  • 『 MySQL数据库 』CRUD之UD,表的数据更新(修改)及删除
  • 贪心算法及相关例题
  • 给企业做公众号运营你都有哪些宝贵经验?
  • 2023亚太地区数学建模B题思路分析+模型+代码+论文
  • Electron+Ts+Vue+Vite桌面应用系列:sqlite增删改查操作篇
  • c语言编程题经典100例——(36~40例)
  • SQL Server实现参数化增删改查Class类
  • 【Linux】 sudo命令使用
  • Redis key的类型以及命令
  • 数组元素积的符号
  • 数据脱敏方案
  • 蓝桥杯每日一题2023.11.28
  • 【数据库连接池】01:连接池初始化
  • Java基于springboot开发的土特产网站商城多商家源码
  • Linux CentOS7 LVM
  • ArkTS开发webview,html页面中的input和按钮等操作均无响应 【Bug已解决-鸿蒙开发】
  • 滴滴、阿里云、语雀相继宕机,损失巨大,软件的高可用失效了么?
  • 基于binlog实现一些业务(Binlog4j)
  • python实现rpc的几种方式(SimpleXMLRPCServer 自带的、第三方ZeroRPC)、连接linux远程开发分布式锁、分布式id
  • ARM麒麟V10 auditctl启动失败处理
  • day67
  • 04:2440---内存控制器
  • 【深度学习】CNN中pooling层的作用
  • 基于H1ve一分钟搭好CTF靶场
  • 网络篇---第五篇
  • Git——Git应用入门