当前位置: 首页 > 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];
    }
};

http://www.dtcms.com/a/41480.html

相关文章:

  • 山东大学计算机组成与设计第六章习题解析
  • 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原理与序列化
  • 高数1.1 函数
  • 深度学习-11.用于自然语言处理的循环神经网络
  • Spring Boot集成Spring Security之HTTP请求授权
  • C++11智能指针
  • 细说 Java GC 垃圾收集器
  • springBoot统一响应类型3.1版本
  • 高举高打,阶跃星辰冲刺商业化
  • 【JavaSE-1】初识Java
  • 【Godot_4.3】预加载preload失败
  • Windows 11【1001问】删除Win11左下角小组件的6种方法