K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
爬楼梯是经典动态规划入门问题:假设你正在爬楼梯,需要爬 n(n为正整数)阶才能到达楼顶,每次你可以爬 1 或 2 个台阶,请问共有多少种不同的方法爬到楼顶?
该问题的动态规划转移方程是固定的,只能写为dp[i] = dp[i-1] + dp[i-2]
使用滚动变量优化的动态规划实现,可将空间复杂度从O(n)降低到O(1),计算结果与未优化版本完全一致
动态规划实现时,初始条件无论设置为dp[0]=0、dp[1]=1还是dp[0]=1、dp[1]=1,最终得到的dp[n]结果都相同
该问题的动态规划实现时间复杂度为O(2^n),和暴力递归实现的时间复杂度一致