算法设计与分析课件 27 爬楼梯.pptxVIP

  • 2
  • 0
  • 约小于1千字
  • 约 10页
  • 2026-06-10 发布于山东
  • 举报

算法设计与分析本节要点CONTENTS爬楼梯

线性DP具有线性阶段划分的动态规划算法称为线性动态规划(简称线性DP)。若状态包含多个维度,则每个维度都是线性划分的阶段,也属于线性DP。

爬楼梯问题假设有n(1≤n≤50)级楼梯,每次只能爬1级或2级,有多少种方法可以爬到楼梯的顶部?

(1)确定状态。dp[i]表示走上第i级台阶有多少种走法。(2)划分阶段。台阶的阶数。(3)决策选择。走上第i级台阶之前的状态为站在第i-1级台阶或第i-2级台阶上。状态转移方程:dp[i]=dp[i-2]+dp[i-1],i3(4)边界条件。dp[1]=0,dp[2]=1,dp[3]=2。(5)求解目标。dp[n]。爬楼梯问题算法设计

爬楼梯问题算法实现

爬楼梯问题算法实现

爬楼梯问题算法实现

动态规划记忆化递归递归动态规划+打表920ms31ms15ms0ms爬楼梯问题

爬楼梯问题算法分析递归:时间复杂度为O(2n),空间复杂度为O(n)。记忆化递归:时间复杂度为O(n),空间复杂度为O(n)。动态规划:时间复杂度为O(n),空间复杂度为O(n)。迭代法:时间复杂度为O(n),空间复杂度为O(1)。打表法:时间复杂度为O(1),空间复杂度为O(1)。

延伸思考:爬楼梯问题

文档评论(0)

1亿VIP精品文档

相关文档