首页 > 其他 > 详细

Leetcode509. 斐波那契数

时间:2021-08-05 10:16:00      阅读:17      评论:0      收藏:0      [点我收藏+]

509. 斐波那契数

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

\(F(0) = 0,F(1) = 1\)?
\(F(n) = F(n - 1) + F(n - 2),其中 n > 1\)?

给你 n ,请计算 F(n) 。

题意概述:求给定斐波拉契数列第n项。

解题报告:

根据斐波拉契数列的递推表达式\(F(n) = F(n - 1) + F(n - 2)\)?,很自然可以想到可以定一个一个长度为\(n\)的数组,再对数组初始化之后,利用循环对数组进行递推处理,即可得到要求的\(f_n\)

但是上述做法空间复杂度过高,所以采用滚动数组通过进行数据迭代免去对数组的定义,减小空间复杂度。

tips:要注意到\(n\)的取值范围是\(0\)开始的,所以在最后返回值的时候要对\(0\)进行判断。

class Solution {
public:
    int fib(int n) {
        int tmp1=0,tmp2=1;
        for (int i=2;i<=n;i++){
            tmp2=tmp1+tmp2;
            tmp1=tmp2-tmp1;
        }
        return n?tmp2:0;
    }
};

Leetcode509. 斐波那契数

原文:https://www.cnblogs.com/Hiraeth-dh/p/15101603.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!