力扣-动态规划-70 爬楼梯

每次你可以爬至多m (1 <= m < n)个台阶。你有多少种不同的方法可以爬到楼顶呢?

台阶作为背包,爬几个台阶作为物体,在台阶为n时,塞任意多个台阶的方法是多少

思路

  1. dp数组定义:在爬到j个台阶前,使用m个物品做填充,可以有dp[j]种方法
  2. 递推公式:dp[i] += dp[i - j];
  3. dp数组初始化:dp[0] = 1;
  4. 遍历顺序:先背包再物品
  5. 时间复杂度:

代码

cpp 复制代码
class Solution {
public:
    int climbStairs(int n) {
        int m = 2;
        vector<int> dp(n+1, 0);
        dp[0] = 1;
        for(int i = 1; i <= n;i++){
            for(int j = 1; j <= m && i - j >= 0;j++){
                dp[i] += dp[i - j];
            }
        }

        return dp[n];
    }
};
相关推荐
2501_941623327 小时前
智慧农业监控平台中的多语言语法引擎与实时决策实践
leetcode
轻抚酸~8 小时前
KNN(K近邻算法)-python实现
python·算法·近邻算法
Yue丶越10 小时前
【C语言】字符函数和字符串函数
c语言·开发语言·算法
小白程序员成长日记11 小时前
2025.11.24 力扣每日一题
算法·leetcode·职场和发展
有一个好名字11 小时前
LeetCode跳跃游戏:思路与题解全解析
算法·leetcode·游戏
AndrewHZ11 小时前
【图像处理基石】如何在图像中提取出基本形状,比如圆形,椭圆,方形等等?
图像处理·python·算法·计算机视觉·cv·形状提取
蓝牙先生12 小时前
简易TCP C/S通信
c语言·tcp/ip·算法
2501_9418705612 小时前
Python在高并发微服务数据同步与分布式事务处理中的实践与优化
leetcode
2501_9411477114 小时前
高并发微服务架构Spring Cloud与Dubbo在互联网优化实践经验分享
leetcode
稚辉君.MCA_P8_Java15 小时前
Gemini永久会员 Java中的四边形不等式优化
java·后端·算法