当前位置: 首页 > 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/37390.html

相关文章:

  • Compose 动画,让页面动起来
  • 2014年下半年试题一:论软件需求管理
  • 创建型模式 - 建造者模式 (Builder Pattern)
  • ProGuard加密混淆SpringBoot应用代码
  • RTSP中RTP/RTCP协议栈、NTP同步及QoS机制
  • hutool工具类的DateUtil和LocalDateTimeUtil
  • AMD GPU 的 Context Roll机制
  • MyBatis简明教程
  • python爬虫学习第十一篇爬取指定类型数据
  • C 语言结构体:从入门到进阶的全面解析
  • 赋能农业数字化转型 雏森科技助力“聚农拼”平台建设
  • pytorch基础-nn.linear
  • 【软件测试阶段一】【软件测试:确保项目质量的关键防线】
  • c++day5
  • Spring Boot + Vue 接入腾讯云人脸识别API(SDK版本3.1.830)
  • 【Elasticsearch】使用Postman操作es的_bulk批量操作
  • Redis面试知识点总结
  • 【原创工具】文件清单生成器 By怜渠客
  • 【算法设计与分析】(一)介绍算法与复杂度分析
  • WEEX交易所安全教學:如何應對剪切板被劫持駭客攻擊?
  • 复合字面量
  • 第十八:路由传参 query
  • Jupyter Notebook中使用GPU进行计算
  • ubuntu离线安装Ollama并部署Llama3.1 70B INT4
  • 刷题总结 栈和队列:单调栈
  • 玩机日记 14 飞牛fnOS部署qBittorrent、AList、Jellyfin,实现下载、存取、刮削、观看一体的家庭影音中心
  • 基于 CFD 预测的机器学习第 2 部分:在 Benchmark 应用程序上使用 Stochos 预测流场
  • VMware建立linux虚拟机
  • github 部署前端静态网页(react vite)
  • 【PLL】相位检测器:PFD