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

相关文章:

  • LangFuse:开源LLM工程平台的革新实践
  • 关于DDOS
  • 无需自建高防:APP遭遇DDoS的解决方案
  • 汽车售后诊断数据流详细分析
  • IPD的基础理论与框架——(四)矩阵型组织:打破部门壁垒,构建高效协同的底层
  • sass基础语法
  • 优云智算-GPU实例使用指南
  • KEYSIGHT N9320B是德科技N9320B频谱分析仪
  • 2025年DDoS混合CC攻击防御全攻略:构建智能弹性防护体系
  • React---day4
  • 家庭路由器改装,搭建openwrt旁路由以及手机存储服务器,实现外网节点转发、内网穿透、远程存储、接入满血DeepSeek方案
  • React 生命周期与 Hook:从原理到实战全解析
  • 2025.05.28-华为暑期实习第一题-100分
  • STM32 启动文件详解:理解单片机启动的“引导者”
  • (一)视觉——工业相机(以海康威视为例)
  • 【静电模拟】打火机的电子部分产生的电压和静电相比,以及能否用其模拟静电枪
  • uniapp 开发企业微信小程序时,如何在当前页面真正销毁前或者关闭小程序前调用一个api接口
  • 聊聊Tomato Architecture
  • Ansys Zemax | 手机镜头设计 - 第 2 部分:光机械封装
  • 【Linux网络篇】:初步理解应用层协议以及何为序列化和反序列化
  • 网站权重6了该则么做优化方案/seo网站课程
  • 动态网站开发全流程/杭州产品推广服务公司
  • hbuilderx怎么制作网页/关键词优化外包服务
  • 深圳产品型网站建设/媒体软文发稿
  • 鄂州市城乡建设委员会网站/企业管理咨询培训
  • 人大网站建设的分析/百度推广一年大概多少钱