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

(补)算法刷题Day25:BM62 斐波那契数列

题目链接

在这里插入图片描述

方法一: 递归
方法二: 有记忆的递归:使用memo数组记录之前计算过的值
方法三: 动态规划:for循环 + 使用一个数组记录对应的值
方法四: 动态规划:改进方法三,由于每个值都只需要知道前两个状态值,因此使用两个整数记录对应的值即可,可降低空间复杂度

# 方法一:递归
def Fibonacci(n: int) -> int:
	if n == 2 or n == 1:
	     return 1
	 result = Fibonacci(n-1) + Fibonacci(n-2)
	 return result
# 方法二:有记忆的递归
def dfs(n,memo):
    if memo[n] != -1:
        return memo[n]
    result = -1
    if n>2:
        result = dfs(n-1,memo) + dfs(n-2,memo)
    memo[n] = result
    return result

class Solution:
    def Fibonacci(self , n: int) -> int:
        memo = [-1 for _ in range(n+1)]
        if n>=1:
            memo[1] = 1 
        if n >= 2:
            memo[2] = 1
        return dfs(n, memo)
# 方法三:动态规划数组
class Solution:
    def Fibonacci(self , n: int) -> int:
        if n <= 2:
            return 1
        dp = [-1 for _ in range(n+1)]
        dp[1] = 1
        dp[2] = 1
        for i in range(3,n+1):
            dp[i] = dp[i-1] + dp[i-2]
        return dp[n]
# 方法四:动态规划+两个整数
class Solution:
    def Fibonacci(self , n: int) -> int:
        if n < 2:
            return 1
        a,b = 0,1
        for i in range(2,n+1):
            a,b = b,a+b
        return b

http://www.kler.cn/a/450198.html

相关文章:

  • openjdk17 从C++视角看 String的intern的jni方法JVM_InternString方法被gcc编译器连接
  • WebRTC服务质量(08)- 重传机制(05) RTX机制
  • MySQL 8.0:explain analyze 分析 SQL 执行过程
  • 利用.NET Upgrade Assitant对项目进行升级
  • 对于其他管理的理解(中)
  • java后端传时间戳给前端的三种方式
  • Python结合一些常见的自然语言处理库来实现根据提示生成作文
  • 基于单片机的噪音检测系统(论文+源码)
  • nodejs创建ws服务器,前端浏览器用websocket接收信息和发送信息给服务端
  • LeetCode 206. 反转链表 (C++实现)
  • Yolo11改进策略:Block改进|使用FastVit的RepMixerBlock改进Yolo11,重参数重构助力Yolo11涨点(全网首发)
  • 系统思考—全局思维
  • 深度学习-77-大模型量化之Post Training Quantization训练后量化PTQ
  • 嵌入式硬件产品:CC254x 蓝牙升级
  • 机器学习之 KNN 算法
  • Axios 取消上一次重复请求
  • DELL EMC Unity 存储系统扩容之如何查看pool类型
  • Java 异常
  • Next.js 14 数据处理:从服务端组件到状态管理的最佳实践
  • Vue.js前端框架教程11:Vue监听器watch和watchEffect
  • MATLAB直接推导函数的导函数和积分形式(具体方法和用例)
  • JAVA开发 在 Spring Boot 中集成 Swagger
  • 人的心理特征
  • PMO转型提升汽车销售效率:看板工具的关键作用
  • 关于 K8s 的一些基础概念整理-补充【k8s系列之二】
  • 石岩基督教福音堂