70. 爬楼梯

✅做题思路or感想

这里和斐波那契的区别是这里是要求方法数

dp数组的含义

  • dp[n]意思是爬到第n阶台阶有的不同种的方法数

递推公式

  • 爬到第n阶台阶有几种方法呢,可以从n - 1阶爬上来,也可以从 n - 2阶爬上来,故dp[n] = dp[n - 1] + dp[n - 2]

初始化

  • dp[0] = 1可以看做是如果楼顶就在脚下,则就有一种方法到达楼顶:摆
  • dp[1] = 1只有一种方法爬到阶级1:爬一层

遍历顺序

  • 因为从递推公式知道,后来的值是由前面的值推出,故从小到大
class Solution {
public:
    int climbStairs(int n) {
        int dp[46];
        dp[0] = 1;
        dp[1] = 1;
        dp[2] = 2;
        for (int i = 2; i <= n; i++) {
            //因为可以从i - 1推出,也可从i - 2推出,所以要把两种方法加起来
            dp[i] = dp[i - 1] + dp[i - 2];
        }
        return dp[n];
    }
};
posted @   北原春希  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示