码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 70. 爬楼梯进阶版


    参照于代码随想录
    70. 爬楼梯

    此题将原题进行了部分修改:
    假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
    每次你可以爬 1 或 2 个…n个台阶。你有多少种不同的方法可以爬到楼顶呢?

    dp数组含义:
    dp[i]:爬到有i个台阶的楼顶,有dp[i]种方法。

    递推公式:
    dp[i] += dp[i -j];

    初始化:
    dp[0] 一定为1,dp[0]是递归中一切数值的基础所在,如果dp[0]是0的话,其他数值都是0了。

    遍历顺序:
    这是一个完全背包,所以是顺序遍历,通过分析可知这个dp中的序列是排列,所以要注意两个for循环嵌套的顺序

    如果求组合数就是外层for循环遍历物品,内层for遍历背包
    如果求排列数就是外层for遍历背包,内层for循环遍历物品
    把题目进行转换:
    一步一个台阶两个台阶等等,然后整个过程就是,每次走多少个台阶然后到楼顶。
    可以这样想:可以走的台阶数为一个数组,从数组里面取值(每个元素可重复取)其和为上到楼顶所需要的台阶数。
    这时就可以很清楚的知道这是一个完全背包问题。

    class Solution {
    public:
        int climbStairs(int n) {
            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];
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

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

  • 相关阅读:
    用hutool中的aes解密对微信小程序加密数据解密
    Git学习记录
    Golang for循环遍历小坑
    Java计算机网络篇-TCP
    奇技淫巧第7期
    SpringBoot笔记之Swagger
    day0918
    R语言Sys.Date函数获取当前日期、将独立的年、月、日信息转化为对应的日期(Year, Month, and Day into a Date)
    我发现了,提升销售业绩的秘密武器!
    C# 中的那些锁,在内核态都是怎么保证同步的?
  • 原文地址:https://blog.csdn.net/qq_56762247/article/details/126232543
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号