力扣509题:斐波那契数列的解法与代码注释

小学生一枚,自学信奥中,没参加培训机构,所以命名不规范、代码不优美是在所难免的,欢迎指正

代码是自己写的,文字是AI配的

斐波那契数列是一个经典的递归问题,通常用于理解动态规划和递归的基本概念。力扣第509题要求实现一个函数,计算第n个斐波那契数。以下是一个使用动态规划思想的C++解决方案,并附有详细注释。

代码实现

cpp 复制代码
class Solution {
public:
    int fib(int n) {
        // 定义一个数组来存储斐波那契数列的值
        int f[100];
        
        // 初始化前两个斐波那契数
        f[0] = 0;
        f[1] = 1;
        
        // 使用循环计算从第2个到第n个斐波那契数
        for(int i = 2; i <= n; i++) {
            f[i] = f[i - 1] + f[i - 2];
        }
        
        // 返回第n个斐波那契数
        return f[n];
    }
};

代码解析

  1. 数组定义 :代码中定义了一个大小为100的数组f,用于存储斐波那契数列的值。这个数组的大小可以根据实际需求进行调整,但需要确保能够存储到第n个斐波那契数。

  2. 初始化 :数组的前两个元素f[0]f[1]分别被初始化为0和1,这是斐波那契数列的起始值。

  3. 循环计算 :通过一个for循环,从第2个斐波那契数开始,依次计算每个斐波那契数,并将其存储在数组中。每个斐波那契数都是前两个数的和。

  4. 返回结果:最后,函数返回数组中的第n个元素,即第n个斐波那契数。

总结

通过动态规划的方法,可以高效地计算斐波那契数列。代码中的注释和优化建议有助于理解算法的实现细节,并为进一步优化提供了思路。

相关推荐
Mr.Winter`33 分钟前
轨迹优化 | 基于激光雷达的欧氏距离场ESDF地图构建(附ROS C++仿真)
c++·人工智能·机器人·自动驾驶·ros·ros2·具身智能
csdn_aspnet36 分钟前
C++ n条水平平行线与m条垂直平行线相交的平行四边形的数量
c++
Y1nhl1 小时前
力扣_链表_python版本
开发语言·python·算法·leetcode·链表·职场和发展
qq_401700411 小时前
C语言中位运算以及获取低8位和高8位、高低位合并
c语言·开发语言·算法
CoovallyAIHub1 小时前
YOLO模型优化全攻略:从“准”到“快”,全靠这些招!
深度学习·算法·计算机视觉
闻缺陷则喜何志丹1 小时前
【BFS】 P10864 [HBCPC2024] Genshin Impact Startup Forbidden II|普及+
c++·算法·宽度优先·洛谷
MicroTech20252 小时前
微算法科技(NASDAQ: MLGO)探索Grover量子搜索算法,利用量子叠加和干涉原理,实现在无序数据库中快速定位目标信息的效果。
数据库·科技·算法
qianbo_insist2 小时前
c++ python 共享内存
开发语言·c++·python
今天背单词了吗9802 小时前
算法学习笔记:8.Bellman-Ford 算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·开发语言·后端·算法·最短路径问题