爬楼梯(改写成完全背包)

简介: 爬楼梯(改写成完全背包)

4. 爬楼梯(改写成完全背包)


题目

原题为LeetCode-70,是一道简单动态规划,现改写为:


假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 m mm 个台阶。你有多少种不同的方法可以爬到楼顶呢


思路

一步爬一个或两个或三个或 m mm 个就是物品,楼顶就是背包,其实就是问装满背包的方法有多少种。再想这是排序数还是组合数?明显先2后1(先爬2阶楼梯再爬1阶楼梯)和先1后2是不同的方法,所以求的是排序数,那么就要求先遍历背包,嵌套遍历物品


五部曲


dp[j] 含义


爬到有 j  个台阶的楼顶的方法数

递推公式


d p [ j ] + = d p [ j − i ]

数组初始化


dp[0]=1

遍历顺序


上文已说明


代码实现

class Solution
{
public:
    int climbStairs(int n, int m)
    {
        vector<int> dp(n + 1, 0);
        dp[0] = 1;
        for (int i = 1; i <= n; i++)
        { // 遍历背包
            for (int j = 1; j <= m; j++)
            { // 遍历物品
                if (i - j >= 0)
                    dp[i] += dp[i - j];
            }
        }
        return dp[n];
    }
};


代码中m表示最多可以爬m个台阶,代码中把m改成2就是本题70.爬楼梯可以AC的代码了

目录
相关文章
|
C++ 容器
【C++】—— 详解AVL树
【C++】—— 详解AVL树
112 0
|
XML Java 数据库连接
Spring整合Mybatis,SqlSessionTemplate方式
MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。 最终,可以做到应用代码不依赖于 MyBatis,Spring 或 MyBatis-Spring
627 2
|
索引 Python
Django(8)ORM单表实例(二)
Django(8)ORM单表实例(二)
115 0
Django(8)ORM单表实例(二)
|
存储 SQL JSON
无需重启应用,动态采集任意点位日志
借助日志治理的现有能力,我们能够在不重启应用的前提下,动态采集任意点位信息,同时由于日志治理在采集信息时会引入链路信息,在分析复杂调用问题时能够起到很好的效果。
无需重启应用,动态采集任意点位日志
|
机器学习/深度学习 传感器 算法
【肺实质分割】基于主动轮廓模型和贝叶斯方法识别实现胸膜旁肺实质分割附matlab代码
【肺实质分割】基于主动轮廓模型和贝叶斯方法识别实现胸膜旁肺实质分割附matlab代码
Flutter 之TextWidget
Flutter 之TextWidget
236 0
Flutter 之TextWidget
绚丽的网页菜单
绚丽的网页菜单
159 0
|
关系型数据库 测试技术 定位技术
arcgis开发笔记【虚拟机安装以方便测试】
由于Arcgis版本加上数据库等完整的版本安装起来实在是太耗费时间,而开发的系统又要经常的在不同的机器上演示,如果每次在新的机器上安装一遍,那肯定会累吐血,为了开发过程中,使用了虚拟机的安装形式供小组共享开发和客户试用等用途,具体步骤是: 1、 首先安装Virtual PC 2、 安装虚拟机操作系统Win2003 3、 安装Arcgis server .
946 0
|
12天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1257 5
|
1天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!