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

news/2025/2/26 14:56:13

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.niftyadmin.cn/n/5868847.html

相关文章

C++ | 高级教程 | 文件和流

&#x1f47b; 概念 文件流输出使用标准库 fstream&#xff0c;定义三个新的数据类型&#xff1a; 数据类型描述ofstream输出文件流&#xff0c;用于创建文件并向文件写入信息。ifstream输入文件流&#xff0c;用于从文件读取信息。fstream文件流&#xff0c;且同时具有 ofst…

【2025信息安全软考重点考点归纳】实时更新

重点页:第14章 恶意代码防范技术原理 页码&#xff1a;271 病毒载体及其对应案例 病毒隐秘载体病毒案例Word文档Melissa照片库尔尼科娃电子邮件“求职信”病毒网页NIMDA病毒 重点页&#xff1a;第6章 认证技术原理与应用 页码&#xff1a;125 Kerberos 认证技术 Kerberos是…

【UML】统一建模语言 UML 基础

【UML】统一建模语言UML 基础 文章目录 一、概述1.1 - 什么是建模1.2 建模的原则1.3 软件建模的实现过程 二、 UML2.1 UML中10种图 三、用例图3.1 用例之间的关系 —— 泛化关系3.2 用例之间的关系 —— 包含关系3.3 用例之间的关系 —— 扩展关系 四、类图4.1 类的表示方法4.2…

【docker】docker swarm lock和unlock的区别,以及旧节点重启的隐患

docker swarm lock/unlock 的作用 Docker Swarm 提供了**加密集群状态&#xff08;Encrypted Raft logs&#xff09;**的功能&#xff0c;可以防止 Swarm 集群的管理数据&#xff08;如任务分配、集群配置等&#xff09;在磁盘上被未授权访问。 docker swarm lock&#xff1a…

Dockerfile 中的 COPY 语句:作用与使用详解

在 Docker 的构建过程中&#xff0c;Dockerfile 是一个核心文件&#xff0c;它定义了镜像的构建步骤和内容。其中&#xff0c;COPY 语句是一个非常重要的指令&#xff0c;用于将文件或目录从构建上下文&#xff08;通常是 Dockerfile 所在的目录及其子目录&#xff09;复制到容…

音乐游戏Dance Dance Revolution(DDR)模拟器

文章目录 &#xff08;一&#xff09;Dance Dance Revolution&#xff08;1.1&#xff09;基本情况&#xff08;1.2&#xff09;机体 &#xff08;二&#xff09;模拟器&#xff08;2.1&#xff09;主程序&#xff08;2.2&#xff09;模拟器主题 &#xff08;三&#xff09;曲谱…

基于Springboot的游戏分享网站【附源码】

基于Springboot的游戏分享网站 效果如下&#xff1a; 系统主页面 关于我们页面 登陆页面 个人中心页面 在线交流页面 游戏详情页面 用户管理页面 游戏作品页面 研究背景 随着信息技术的飞速发展&#xff0c;游戏行业迎来了前所未有的繁荣。游戏不仅是人们休闲娱乐的方式&…

DeepSeek进入开源周,分享几点关于开源的思考

最近DeepSeek进入开源周&#xff0c;又把差点被大众遗忘在角落的开源话题拉了出来。 作为一个开源作者&#xff0c;也分享几点关于开源的思考。 AI对开源的影响 开源项目遇到的最大困难 开源项目不应该商业化 你的开源项目是垃圾