当前位置: 首页 > 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)
http://www.dtcms.com/a/38349.html

相关文章:

  • 【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-单节点部署及测试报告
  • ASP.NET Core 8.0学习笔记(二十八)——EFCore反向工程
  • React + TypeScript 复杂布局开发实战
  • 存储引擎、索引、SQL优化(MySQL笔记第四期)
  • Dashboard-frps
  • 【Azure 架构师学习笔记】- Azure Databricks (12) -- Medallion Architecture简介
  • 算法-数据结构(图)-DFS深度优先遍历
  • Cesium@1.126.0,创建3D瓦片,修改样式
  • 微信小程序网络请求与API调用:实现数据交互
  • Part-DB部署
  • 探索浮点数在内存中的存储(附带快速计算补码转十进制)