方法一:递归

使用递归计算给定整数的斐波那契数。

效率最差但是最简单的方法,会重复计算,就不实现了。

方法二:记忆化自底向上的方法

方法三:自底向上进行迭代

方法四:矩阵求幂

public class Solution
{/*//数组 方法二:记忆化自底向上的方法public int Fib(int N) {if(N < 2)return N;int[] resArray = new int[N + 1];resArray[0] = 0;resArray[1] = 1;for(int i = 2; i <= N; i++){resArray[i] = resArray[i - 1] + resArray[i - 2];}return resArray[N];}*//* 滑动变量  方法三:自底向上进行迭代public int Fib(int N) {if(N < 2)return N;int pre = 1;int prepre = 0;int current = 0;for(int i = 2; i <= N; i++){current = pre + prepre;prepre = pre;pre = current;}return current;}*///方法四:矩阵求幂 public int Fib(int N){if (N <= 1) {return N;}int[,] A = new int[,]{{1, 1}, {1, 0}};matrixPower(A, N-1);return A[0,0];}void matrixPower(int[,] A, int N) {if (N <= 1) {return;}matrixPower(A, N/2);multiply(A, A);int[,] B = new int[,]{{1, 1}, {1, 0}};if (N%2 != 0) {multiply(A, B);}}void multiply(int[,] A, int[,] B) {int x = A[0,0] * B[0,0] + A[0,1] * B[1,0];int y = A[0,0] * B[0,1] + A[0,1] * B[1,1];int z = A[1,0] * B[0,0] + A[1,1] * B[1,0];int w = A[1,0] * B[0,1] + A[1,1] * B[1,1];A[0,0] = x;A[0,1] = y;A[1,0] = z;A[1,1] = w;}
}

leetcode 509. 斐波那契数相关推荐

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

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

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

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

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

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

  4. leetcode 509. 斐波那契数(Java版)

    题目 https://leetcode-cn.com/problems/fibonacci-number/ 题解 递归解法 class Solution {public int fib(int n) ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 女性程序员占比超17%,平均月薪近2万 | 程序员就业大数据报告
  2. PAT A1030 动态规划
  3. 【Android 应用开发】 Android 相关代码规范 更新中 ...
  4. 吴恩达 coursera ML 第十五课总结+作业答案
  5. PHP数据类型的转化:(类型) 变量 类型val(变量) settype(变量,类型)
  6. 小数 ###_C#中的小数关键字
  7. 数据字典在sga的哪一个组件中缓存_【赵强老师】Oracle数据库的内存结构
  8. osea/ introduction
  9. 红外图像和可见光图像异源图像配准问题研究
  10. 生日快乐代码_祝这位兄弟(?)生日快乐?
  11. HashMap和TreeMap排序
  12. ajax的state,ajax 中readystate一直为1
  13. 淘客订单检测接口--检测淘宝订单是否是淘客订单的接口
  14. ubuntu安装中文拼音输入法,装系统的第一步
  15. 递归解决不含连续的1的位串个数的问题
  16. 从零开始做自媒体短视频,新手一样可以操作!每月稳定5000多
  17. sssssssssssssssssssssssssss
  18. form表单中的 action=./? 是什么意思
  19. SwitchHosts的使用
  20. 世界杯,越位,点球,角球等足球相关英语怎么说

热门文章

  1. python pprint_【Python】输入和输出
  2. [蓝桥杯][2017年第八届真题]小计算器(模拟)
  3. 从二值检索到层次竞买图——让搜索广告关键词召回焕然新生
  4. java sqlmap_sqlmap 学习指南
  5. inlfuxdb版本_InfluxDB和MySQL的读写对比测试
  6. 阿里DIN模型(深度兴趣网络)详解及理解
  7. rds数据加密_如何保障云上数据安全?一文详解云原生全链路加密
  8. 小波阈值去噪法基础理论
  9. Socket 编程 windows到Linux代码移植遇到的问题
  10. Linux维护笔记四