当前位置: 首页 > news >正文

力扣-动态规划-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. 时间复杂度:  O(n*m)   

代码

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];
    }
};

相关文章:

  • 山东大学计算机组成与设计第六章习题解析
  • C++11 智能指针:unique_ptr、shared_ptr和weak_ptr 功能特性 模拟实现
  • 【新手入门】SQL注入之盲注
  • 双机热备旁挂组网场景实验
  • A64指令集基本指令(一):分支指令
  • Apache Doris:一款高性能的实时数据仓库
  • 实现 Leaflet 多类型点位标记与聚合功能的实战经验分享
  • python-leetcode-最长有效括号
  • 蓝桥杯15届JavaB组6题
  • C/C++语言知识点一
  • 提示学习(Prompting)
  • 算法与数据结构(二叉树中的最大路径和)
  • 深入了解 Python 中的 MRO(方法解析顺序)
  • Docker搭建基于Rust语言的云原生可观测平台OpenObserve
  • sklearn中的决策树-分类树:剪枝参数
  • PMP项目管理—整合管理篇—7.结束项目或阶段
  • 【Kubernetes】API server 限流 之 maxinflight.go
  • 跨AWS账户共享SQS队列以实现消息传递
  • SQL Server 视图的更新排查及清除缓存
  • Protobuf原理与序列化
  • 中华人民共和国和巴西联邦共和国关于强化携手构建更公正世界和更可持续星球的中巴命运共同体,共同维护多边主义的联合声明
  • 一海南救护车在西藏无任务拉警笛开道,墨脱警方:已处罚教育
  • 苹果或将于2027年推出由玻璃制成的曲面iPhone
  • 4月金融数据前瞻:受去年低基数因素影响,社融增量有望同比大幅多增
  • 海南省三亚市委原常委、秘书长黄兴武被“双开”
  • 习近平出席俄罗斯总统举行的欢迎仪式