2022.3.18 leetcode刷题笔记 509. 斐波那契数

54 阅读1分钟

509. 斐波那契数

1.难度:简单

2.题目

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

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

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

3.示例

1)示例1

输入:n = 2  
输出:1  
解释:F(2) = F(1) + F(0) = 1 + 0 = 1

2)示例2

输入:n = 2  
输出:1  
解释:F(2) = F(1) + F(0) = 1 + 0 = 1

3)示例3

输入:n = 2  
输出:1  
解释:F(2) = F(1) + F(0) = 1 + 0 = 1

4.提示

0 <= n <= 30

5.思路分析

经典的斐波那契数列,递归和迭代均可初次做为了锻炼下动态规划,新建了一个数组,后面觉得其实三个变量迭代足够了,p,q,r。r为中间量,q每次变为p+q,p变为原来的q。入门级的动态规划题目。

6.题解

class Solution {
public:
    int fib(int n) {
        if(n<2)return n;
        int p=0;
        int q=1;
        int r=0;
        for(int i=2;i<=n;i++){
           r=q;
           q=r+p;
           p=r;
        }
        return q;
    }
};


7.ac成绩

image.png

转载自本人在CSDN上发表的文章blog.csdn.net/yumiao168/a…