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

python-leetcode-第 N 个泰波那契数

1137. 第 N 个泰波那契数 - 力扣(LeetCode)

解法 1:递归(O(3^n),不推荐)

递归直接按照数学定义实现,但时间复杂度高,不适合大 n。

class Solution:
    def tribonacci(self, n: int) -> int:
        if n == 0:
            return 0
        elif n == 1 or n == 2:
            return 1
        return self.tribonacci(n - 1) + self.tribonacci(n - 2) + self.tribonacci(n - 3)

缺点:大量重复计算,时间复杂度 O(3^n),n 较大时会超时。

解法 2:动态规划(O(n),空间 O(n))

使用数组存储计算结果,按顺序计算。

class Solution:
    def tribonacci(self, n: int) -> int:
        if n == 0:
            return 0
        if n == 1 or n == 2:
            return 1
        dp = [0] * (n + 1)
        dp[1] = dp[2] = 1
        for i in range(3, n + 1):
            dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]
        return dp[n]

优点:时间复杂度 O(n),比递归更快。
⚠️ 缺点:空间复杂度 O(n)

解法 3:迭代(O(n),空间 O(1))

只存储 前三个变量,减少空间占用。

class Solution:
    def tribonacci(self, n: int) -> int:
        if n == 0:
            return 0
        if n == 1 or n == 2:
            return 1
        a, b, c = 0, 1, 1
        for _ in range(n - 2):
            a, b, c = b, c, a + b + c
        return c

优点:时间复杂度 O(n),空间复杂度 O(1),适合大 n。

相关文章:

  • Denoising Diffusion Implicit Models (DDIM)
  • Python PDF文件拆分-详解
  • 抖音生活服务加强探店内容治理,2024年达人违规率下降30%
  • 2025年4月1日-2日AutoCable 中国汽车线束线缆及连接技术创新峰会即将开幕
  • 大模型WebUI:Gradio全解12——LangChain原理、架构和组件(2)
  • 2025 年度福建省职业院校技能大赛中职组“网络建设与运维”赛项规程
  • MySQL优化示例 1:关联查询
  • vue3-tree-org创建组织架构图简单案例分享
  • scala基础
  • 剧本杀APP系统开发,市场发展前景
  • 计算机毕业设计SpringBoot+Vue.js基于工程教育认证的计算机课程管理平台(源码+文档+PPT+讲解)
  • 搭建一个私有NuGet服务器
  • 【AI深度学习基础】NumPy完全指南进阶篇:核心功能与工程实践(含完整代码)
  • OpenCV计算摄影学(10)将一组不同曝光的图像合并成一张高动态范围(HDR)图像的实现类cv::MergeDebevec
  • GEE学习笔记 28:基于Google Earth Engine的Landsat8缨帽变换土壤指数反演——亮度、绿度与湿度分量的提取
  • 白话React第九章React 前沿技术与企业级应用实战
  • 跨平台文件互传工具
  • python-leetcode-斐波那契数
  • FastAPI系列:如何配置跨域访问(CORS)
  • 10. 作者去换监控源了,不知道什么原因,zabbix自定义监控无法获取
  • 站长之家素材网站/做网站关键词优化的公司
  • 网站建设app销售好做吗/拓客平台有哪些
  • 网站一个按钮如何做跳转其他链接/谷歌chrome手机版
  • wordpress维护插件/湖南广告优化
  • 郑州app拉新项目/长沙seo顾问
  • 曹县做网站建设/描述建设一个网站的具体步骤