【代码随想录day 32】 力扣 509.斐波那契数列

视频讲解:https://www.bilibili.com/video/BV1f5411K7mo/?vd_source=a935eaede74a204ec74fd041b917810c

文档讲解:https://programmercarl.com/0509.斐波那契数.html#思路

力扣题目:https://leetcode.cn/problems/fibonacci-number/

动归五步法:

  1. 确定dpi的含义:表示第i+1个斐波那契数
  2. 确定递推公式:dpi = dpi-1 + dpi - 2;
  3. 初始化dp:dp0 = 1; int dp1 = 1;
  4. 遍历顺序:从前往后依次遍历
  5. 打印dp数组,便于调试
    可以设定一个数组来存储斐波那契数列,简单点也可以只用三个数循环更新,因为我们只需要前两个数来计算第三个数,所以设置dp0,dp1,sum,从i=2时加到i=n-1时sum就表示dpn-1,也就是第n个斐波那契数。
cpp 复制代码
class Solution {
public:
    int fib(int n) {
        //1.确定dp[i]含义:第i个斐波那契数列的数值
        //2.确定递推公式:dp[i] = dp[i-1] + dp[i - 2];
        //3.初始化dp
        int dp0 = 1;
        int dp1 = 1;
        int sum;
        if(n == 0)
        {
            return 0;
        }
        if(n == 2 || n == 1)
        {
            return 1;
        }
        //4.遍历顺序
        for(int i = 2; i < n ; ++i)
        {
            //求的是dp[i+1],n是从1到n,dp[i]是从0到i
            sum = dp0 + dp1;
            dp0 = dp1;
            dp1 = sum;
        }
        return sum;
    }
};
相关推荐
hqyjzsb1 小时前
法律 Prompt 干货:搭建合同审查提示词要包含哪些要素
开发语言·人工智能·python·职场和发展·数据分析·prompt·业界资讯
Discipline10292 小时前
尼泊尔河流流量:天气驱动的预测与高流量风险
人工智能·算法
XuCoder2 小时前
改一个数,右边全得重算,这题怎么扛住两万次查询
算法
小羊没烦恼!2 小时前
在Scrum中实施敏捷建模
java·开发语言·windows·算法·c#
weixin_307779132 小时前
基于睿擎工业开发平台的预训练视觉模型轻量化适配与低代码部署优化
开发语言·算法
hold?fish:palm3 小时前
45 二叉树的右视图
开发语言·c++·算法
粤鼎恒业3 小时前
惠州工厂电子料回收厂家推荐:从交接单反推筛选标准
大数据·数据库·算法·硬件架构·硬件工程·pcb工艺·材料工程
小爷毛毛(卓寿杰)4 小时前
【Agent 意图识别】输出协议、评估与置信度
人工智能·算法·大模型·prompt·大语言模型·agent
优质酸酸乳4 小时前
力扣100题之21合并两个有序链表
算法·leetcode·链表
旖旎夜光4 小时前
LeetCode 137 : 只出现一次的数字 II(位运算) —— 题解
c++·笔记·学习·算法·leetcode·力控