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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/fibonacci-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解法一:递归实现

思路:从通项表达式看可以看出,当n>1时,函数实际上是在自己调用自己做计算。

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

暴力递归涉及到数据的重复计算,因此效率低下。
时间复杂度:O(2^n)
空间复杂度:O(1)

解法二:滚动数组

思路:斐波那契数列的算法是某个位置上的值等于前两个数的和,因此,我们只需要3个变量即可。

class Solution {public int fib(int n) {if(n <= 1) {return n;}int left1 = 1, left2 = 1, sum = 0;for(int i = 2; i <= n; i++) {sum = left1 + left2;left1 = left2;left2 = sum;}return sum;}
}

时间复杂度:O(n)
空间复杂度:O(1)

需要说明的是,动态数组是一种思想,并非一定要使用数组。

LeetCode练习题:斐波那契数列相关推荐

  1. 蓝桥杯入门练习题斐波那契数列

    蓝桥杯入门练习题 斐波那契数列 #include <stdio.h> #include <stdlib.h>int main() {long long i, j, f1 = 1 ...

  2. 练习题 斐波那契数列

    #include<stdio.h> int fun(int n) {     if(n==0)     return 0;     else if(n==1)     return 1; ...

  3. 斐波那契数列前n项和 c++_蹲在马桶看算法(Day8—LeetCode之NO.509 斐波那契数列)...

    问题引入: 最先研究Successione di Fibonacci(斐波那契数列或兔子数列)的是意大利Leonardo Pisano Bigollo(又称斐波那契),最先是描述兔子生长的时候用上了这 ...

  4. 《LeetCode力扣练习》剑指 Offer 10- I. 斐波那契数列 Java

    <LeetCode力扣练习>剑指 Offer 10- I. 斐波那契数列 Java 一.资源 题目: 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N) ...

  5. LeetCode——动态规划:斐波那契数列

    斐波那契数列 目录 爬楼梯 强盗抢劫 强盗在唤环形街区抢劫 信件错排 注:具体解析请点击链接进入LeetCode题解区. 1. 爬楼梯 https://leetcode-cn.com/problems ...

  6. RUNOOB python练习题24 斐波那契数列的衍生问题

    用来练手的python练习题,原题链接 : python练习实例24 题干: 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13-求出这个数列的前20项之和. 拿到题目观察数列,我们不 ...

  7. RUNOOB python练习题6 斐波那契数列

    用来练手的python 练习题其六,原链接 : python练习实例6 题干 : 斐波那契数列 斐波那契数列可以说是很好的递归理解工具了,这里就用递归实现一下斐波那契数列. 源代码如下: # 返回fi ...

  8. 【LeetCode】剑指 Offer 10- I. 斐波那契数列

    [LeetCode]剑指 Offer 10- I. 斐波那契数列 文章目录 [LeetCode]剑指 Offer 10- I. 斐波那契数列 一.递归 二.递归+哈希表 三.动态规划 总结 一.递归 ...

  9. LeetCode:递归思想的延伸,从斐波那契数列到爬楼梯模型

    题目描述: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶.每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 看到这个问题的第一反应其实我想到的是排列组合的思想去解答.比如有n阶, ...

最新文章

  1. Android_神奇的android:clipChildren属性
  2. 千万级并发实现的秘密:内核不是解决方案,而是问题所在!
  3. java 基础数据类型面试_Java(数据类型)基础面试
  4. linq to sql (Group By/Having/Count/Sum/Min/Max/Avg操作符)
  5. 越努力越幸运,三年了!!!
  6. 软件工程学习笔记《二》代码规范
  7. 核函数与径向基函数 (Radial Basis Function 简称 RBF)详解
  8. C语言小知识---奇葩的小数
  9. 戴尔电脑开机黑屏怎么办_电脑黑屏开不了机怎么办
  10. PHP给飞秋发消息,wireshake抓包,飞秋发送信息,python
  11. 多人语音聊天社交app源码,语音聊天的优势是什么,语音系统源码开发
  12. 测控专业英语复习资料
  13. NPDP,优秀产品经理必备证书
  14. 融合正弦余弦和变异选择的蝗虫优化算法
  15. 互联网30年,总有人正年轻
  16. CentOS7-Docker-DockerFile-05
  17. cad中简单流程图制作_教你怎么制作出高逼格的专业流程图!
  18. 狗年已到,今天送3万元红包,本文有4个答案
  19. Nanopi r4s usb网卡设置方法(MT7601U Wireless Adapter)
  20. 【软件工程】软件需求

热门文章

  1. Fuzzy SVM with a new fuzzy membership function--文献翻译
  2. 苹果手机计算机桌面显示器,《iphone使用技巧》苹果电脑手机必学的几个投屏幕方法分享...
  3. 简单实现购物车相同物品累加
  4. 申请 icp经营性许可证/增值电信业务许可证
  5. 基于数据kmeans_data分析聚类画图 使用sc轮廓系数作为评价指标
  6. 黑鲨能换鸿蒙系统吗,黑鲨告诉你重装系统对电脑的好坏处
  7. a4纸在html的像素,打印常识:A4纸张在显示器上应该要多少像素?
  8. python开机自启切换每日必应壁纸
  9. 一切的闹闹哄哄,只是他在水帘洞躲避风沙那晚做的一个梦
  10. 服务器被黑怎么用防御系统解决