文章目录

  • 题目描述
  • 思路 & 代码
    • 递归
    • 动态规划
    • 二刷

题目描述

  • 呃~说来尴尬,在简单题栽跟头了= = (超时)
  • 一般来说,这玩意是递归教学题了。但实际上会有很多重复的冗余步骤,实际上用动态规划效率会更高

思路 & 代码

递归

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

动态规划

  • O(n) & O(n)
class Solution {int[] ans = new int[101];public int fib(int n) {// O(n) & O(n) 的动态规划ans[0] = 0;ans[1] = 1;for(int i = 2; i <= n; i++){ans[i] = ans[i - 1] + ans[i - 2];ans[i] %= 1000000007;}return ans[n];}
}
  • O(n) & O(1) ,因为这道题实际上只要记录当前两个元素的状态即可,因此实际上可以用两个变量起到整个数组的作用。
class Solution {public int fib(int n) {// O(n) & O(1) 的动态规划int a = 0;int b = 1;int sum = 0;for(int i = 1; i <= n; i++){sum = (a + b) % 1000000007;a = b;b = sum;}return a;}
}

二刷

  • 边界和返回值还是值得注意的
class Solution {public int fib(int n) {int pre = 0, now = 1, next = 0;for(int i = 1; i <= n; i++) {next = (pre + now) % 1000000007;pre = now;now = next;}return pre;}
}

【LeetCode笔记】剑指 Offer 10-I. 斐波那契数列 (Java、递归、动态规划)相关推荐

  1. 剑指offer Q10 -I 斐波那契数列

    思路 本题看起来是简单题,但是实际上对性能和结果都有要求 直接使用递归写法性能上是不能通过的.只能使用迭代写法,通过两个变量re1和re2来保存前一步和前前一步的结果,最后返回re2即可.但是注意,本 ...

  2. 剑指Offer_入门_JZZ_斐波那契数列

    剑指Offer_入门_JZZ_斐波那契数列 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1).n≤39. 示例1 输入4,返回 ...

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

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

  4. 剑指offer——面试题10:斐波那契数列

    个人答案: 1 #include"iostream" 2 #include"stdio.h" 3 #include"string.h" 4 ...

  5. Python输出斐波那契数列【递归、迭代】

    Python输出斐波那契数列[递归.迭代] 首先 斐波那契数列的定义是什么? 斐波那契数列指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--在数学上,斐波那契数列以如下被以递推的方 ...

  6. 斐波那契数列(递归+源码+注释)

    斐波那契数列(递归+源码+注释) 公元 1202 年,意大利数学家莱昂纳多·斐波那契提出了具备以下特征的数列: 前两个数的值分别为 0 .1 或者 1.1: 从第 3 个数字开始,它的值是前两个数字的 ...

  7. 斐波那契数列python递归 0、1、1、2、3_python: 递归和递推方法求斐波那契数列

    1.  斐波那契数列 序号 0 1 2 3 4 5 6... 数列 0 1 1 2 3 5 8... 2.  三种程序 import time time1 = time.clock() #斐波那契数列 ...

  8. (兔子繁殖问题)斐波那契数列:递归非递归解法

    题目 假设一对幼年兔子需要一个月长成成年兔子,一对成年兔子一个月后每个月都可以繁衍出一对新的幼年兔子.不考虑死亡的情况,问第 N 个月时共有多少对兔子? 这是一个典型的斐波那契数列问题,即 第一个月有 ...

  9. 兔子繁殖问题 斐波那契数列 java实现

    兔子繁殖问题 斐波那契数列 java实现 问题描述 一对兔子,从出生后第3个月起每个月都生一对兔子. 小兔子长到第3个月开始每个月又生一对兔子. 假如兔子都不死, 请问第1个月出生的一对兔子,第n个月 ...

  10. 斐波那契数java实现_斐波那契数列Java实现[剑指offer]

    描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 题解 1.递归实现 采用递归的方式进行实现时,从第n个节点向下递归时,存 ...

最新文章

  1. 皮一皮:颜值的重要。。。
  2. “外星人”字符串生成算法研究
  3. cordova sqlite
  4. Linux字符串三剑客笔试题集合
  5. IOS中UIViewController的创建
  6. php截取字符串,带中文,多余的省略号代替
  7. Javascript第四章函数function也是数据类型第六课
  8. kindeditor上传图片编辑框乱码问题
  9. Maven聚合与继承
  10. android studio定位gps
  11. SMP_WEIBO_2016 微博用户画像 可视化(未完成)
  12. 【力扣题解】分式化简
  13. linux服务器 ip地址,查看linux服务器的IP地址
  14. java周总结1113_流总结_序列化_xml_html
  15. 视觉感知特性 【1】人类视觉系统的信息处理机制的4个特性
  16. HTML中如何自动切换页面背景图片
  17. The Shawshank Redemption-11
  18. 验证码图片显示不出文字
  19. UINO优锘科技:一台物理发动机带你看懂数字孪生八要素
  20. ACCP6.0 教程课件,可用

热门文章

  1. java if 定义变量_java – 如何分配在if else语句中定义的变量
  2. android高德天气api接口,天气查询-API文档-开发指南-Web服务 API | 高德地图API
  3. oracle批量构造数据,oracle批量构造数据方法 - rd_clp的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  4. Halcon学习笔记:读取多张图片
  5. MapReduce分析NCDC 年气象数据最低温度与最高温度
  6. 听说你盗图都盗绿了?
  7. Redis是单线程为什么还那么快?
  8. 小甲鱼 OllyDbg 教程系列 (十六) : 简单病毒的逆向分析
  9. python之socket编程
  10. Hamcrest总结--思维导图