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

力扣HOT100之动态规划:70. 爬楼梯


这道题得用动态规划来做,用递归好像会超时。还是继续使用代码随想录中的动规五部曲:
1.确定dp[i]的含义:爬到第i阶楼梯的方法数
2.确定递推公式:dp[i] = dp[i - 1] + dp[i - 2]
3.dp数组初始化:dp[0] = 1, dp[1] = 1
4.确定遍历顺序:从前往后遍历
5.打印数组(省略)
由于本题使用的是一维dp数组,因此dp[i]的意义为:爬到第i节楼梯共有dp[i]种方法。由于这本质上就是一个斐波那契数列,所以递推公式也很好想,只有到达第i阶只有两个情况:

  1. 先设法到达i - 1阶,再向上爬一级
  2. 先设法到达i - 2阶,再向上爬两级
    因此爬到第i阶的方法数为爬到i - 1阶和爬到i - 2阶的方法数之和。
    dp数组初始化仅对dp[0]dp[1]进行赋值,都赋值为1。然后从前往后不断更新dp数组,最终返回dp[n]即可。
class Solution {
public:int climbStairs(int n) {//动规五部曲//1.确定dp[i]的含义:爬到第i阶楼梯的方法数//2.确定递推公式:dp[i] = dp[i - 1] + dp[i - 2]//3.dp数组初始化:dp[0] = 1, dp[1] = 1//4.确定遍历顺序:从前往后遍历//5.打印数组(省略)vector<int> dp(n + 1);   //初始化dp[0] = 1;dp[1] = 1;for(int i = 2; i <= n; i++)dp[i] = dp[i - 1] + dp[i - 2];return dp[n];}
};
http://www.xdnf.cn/news/722071.html

相关文章:

  • Windows 下如何打开设置环境变量的对话框
  • 男子垒球世界纪录是多少米·棒球1号位
  • 26考研 | 王道 | 第六章 应用层
  • 解析C++排序算法
  • linux服务器ssh远程中文显示问号
  • VL 中间语言核心技术架构:构建全链路开发生态
  • 【仿生系统】潜移默化 —— Claude4 的解决方案
  • java上机测试错题回顾(4)
  • JAVA与C语言之间的差异(一)
  • 王树森推荐系统公开课 特征交叉01:Factorized Machine (FM) 因式分解机
  • vue自定义穿梭框(内容体+多选框)
  • SMT贴片工艺核心要点解析
  • 连接远程桌面计算机提示:“这可能是由于CredSSP加密数据库修正” 问题解决方案
  • OpenLayers 地图打印
  • C++创建对象过程
  • 攻防世界-BadProgrammer
  • siglip2(2) Naflex模型的动态分辨率原理
  • 微信小店推客系统带来的便利性
  • IPTV电视直播 1.6.0 | 手机电视直播 秒播无卡顿
  • 短视频一键搬运 v1.7.1|短视频无水印下载 一键去重
  • 计算几何 视频截图
  • int和Integer的区别
  • vue3+element plus 关于el-dialog__body无法选中的问题
  • 掌握STP技术:网络环路终结者实战
  • cf2067A
  • 定位例子(vue3)
  • 告别RAG上下文丢失:Late Chunking 与 Contextual Retrieval 深度对比解析
  • 【实证分析】上市公司全要素生产率+5种测算方式(1999-2024年)
  • OTA中版本灰度发布、用户反馈闭环浅谈
  • 深度解构:Profinet转Profibus网关如何重塑产品分离装置的控制逻辑