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

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

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

思路

  1. dp数组定义:在爬到j个台阶前,使用m个物品做填充,可以有dpj种方法
  2. 递推公式:dpi += dpi - j;
  3. dp数组初始化:dp0 = 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];
    }
};
相关推荐
Yang_jie_033 分钟前
笔记:数据结构(栈是否使用底指针以及头指针的初始化值)
数据结构·笔记·算法
2301_8008951015 分钟前
信息安全数学基础复习
算法
爱折腾的小黑牛23 分钟前
简记往来批量录入功能的实现:从文本到结构化数据
前端·算法
Starmoon_dhw38 分钟前
题解:P17078 夏日甜点
c++·学习·算法·图论
海石1 小时前
【JS击败90%】前缀和+定长滑动窗口
算法·leetcode
Tisfy2 小时前
LeetCode 2685.统计完全连通分量的数量:DFS求每个连通块的边点数
算法·leetcode·深度优先··题解·连通图·全连通分量
海石2 小时前
1次遍历,空间复杂度击败100%,时间复杂度击败85%
算法·leetcode
L歪歪君2 小时前
Apache Doris全链路性能优化实战指南:从架构设计到生产落地
java·开发语言·算法
m0_466525293 小时前
从“算法内卷”到“可信易用” 东软多模态医学人工智能平台开启无代码科研新时代
人工智能·算法
码少女3 小时前
数据结构——冒泡排序及优化
数据结构·算法·排序算法