剑指offer 09. 斐波那契数列

简介: 剑指offer 09. 斐波那契数列

题目描述

输入一个整数 n ,求斐波那契数列的第 n 项。

假定从 0 开始,第 0 项为 0。

数据范围

0≤n≤39

样例

输入整数 n=5 
返回 5


方法一:递推 O(n)

我们可以只用常数个变量来进行计算,具体思路如下:


初始化 a=0 和 b=1 ,如果 n=0 则直接返回 a=0 。

如果 n>0 则计算 c=a+b ,然后将 a 和 b 往后移一位即 a=b,b=c 。

来看个例子加深一下印象,假设传入参数 n 为 4 :


第一步: 初始化变量 a=0,b=1 。


c05d5656515048ee8d38bd21f88067ff.png

第二步: 开始循环,计算 c=a+b=1a 更新为 bb 更新为 c ,并且 n 要减 1

第三步 ~ 第五步: 和第二步一样,类似于是一个滚动数组,一直往后面移动。

第六步: 直到 n0 ,返回 a 就是最终的答案。

b458c5d8e77941809437d5c61fa8d733.png

class Solution {
public:
    int Fibonacci(int n) {
        int a = 0, b = 1;
        while (n--)
        {
            int c = a + b;
            a = b, b = c;
        }
        return a;
    }
};

欢迎大家在评论区交流~

目录
相关文章
【剑指offer】-斐波那契数列-07/67
【剑指offer】-斐波那契数列-07/67
|
9月前
LeedCode_04-斐波那契数列(剑指offer-10)
LeedCode_04-斐波那契数列(剑指offer-10)
|
4月前
剑指Offer LeetCode 面试题10- I. 斐波那契数列
剑指Offer LeetCode 面试题10- I. 斐波那契数列
23 0
|
4月前
牛客网-斐波那契数列
牛客网-斐波那契数列
14 0
|
7月前
剑指offer-9.斐波那契数列
剑指offer-9.斐波那契数列
24 1
|
7月前
|
机器学习/深度学习 算法
蓝桥杯:递推算法 递归算法 例题:斐波纳契数列
蓝桥杯:递推算法 递归算法 例题:斐波纳契数列
41 0
|
10月前
|
存储
剑指Offer - 面试题10:斐波那契数列
剑指Offer - 面试题10:斐波那契数列
56 0
|
11月前
|
算法
斐波那契数列两种算法和青蛙跳台阶的两种实际问题
当我们看到这样的题时,心想就是一个简单的递归调用么。 但是,我们要看到这种算法的不足之处——效率低下。 首先简单的介绍一下 :
68 0
斐波那契数列(剑指offer 10-I)
斐波那契数列(剑指offer 10-I)
AcWing 741. 斐波那契数列
AcWing 741. 斐波那契数列
72 0
AcWing 741. 斐波那契数列

热门文章

最新文章