当前位置: 首页 > news >正文

leetcode_动态规划/递归 509. 斐波那契数

509. 斐波那契数

  • 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
    • F(0) = 0,F(1) = 1
    • F(n) = F(n - 1) + F(n - 2),其中 n > 1
  • 给定 n ,请计算 F(n) 。
class Solution(object):
    def fib(self, n):
        """
        :type n: int
        :rtype: int
        """
        if n < 2:
            return n
        
        f = [0] * (n + 1)
        f[0] = 0
        f[1] = 1

        for n in range(2, n+1):
            f[n] = f[n-1] + f[n-2]

        return f[n]
  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

空间优化

class Solution(object):
    def fib(self, n):
        """
        :type n: int
        :rtype: int
        """
        if n < 2:
            return n
        
        prev, curr = 0, 1  # 初始化前两个斐波那契数
        for _ in range(2, n + 1):
            prev, curr = curr, prev + curr  # 更新前两个值
        
        return curr
        
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

相关文章:

  • 【LLM】R1复现项目(SimpleRL、OpenR1、LogitRL、TinyZero)持续更新
  • ROS2 强化学习:案例与代码实战
  • flutter: table calendar笔记
  • Log | Hugo+PaperMod+Github创建自己的博客网站
  • 京东web 详情 cfe滑块分析
  • 电脑键盘知识
  • uniapp从入门到精通(全网保姆式教程)~ 别再说你不会开发小程序了
  • Kubernetes集群状态检查与告警整合的自动化
  • 选择排序算法
  • 数据结构、算法和STL简介 【复习笔记】
  • 利用 Open3D 保存并载入相机视角的简单示例
  • 消息队列面试题
  • 记录Qt 虚拟键盘样式修改与使用
  • 大模型基础概念之神经网络宽度
  • Spring 循环依赖解析与解决方案
  • springcloud nacos 整合seata解决分布式事务
  • Android14窗口管理自适应投屏分辨率
  • 如何在视频中提取关键帧?
  • MySQL undo log,redo log和bin log日志文件的生成时间点、层级归属、存储位置及生命周期详解
  • Apache DolphinScheduler系列1-单节点部署及测试报告
  • 时隔三年,俄乌直接谈判重启
  • 查幽门螺杆菌的这款同位素长期被海外垄断,秦山核电站实现突破
  • 马上评|训斥打骂女儿致死,无暴力应是“管教”底线
  • 侵害孩子者,必严惩不贷!3名性侵害未成年人罪犯被执行死刑
  • 租车订单时隔7年从花呗免密扣费?“GoFun出行”引质疑
  • 上海静安将发放七轮文旅消费券,住宿券最高满800元减250元