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

动态规划法:爬楼梯

假如你现在爬楼梯,需要n阶才能到达楼顶,每次可以爬1或2 台阶,你有多少中不同的方法可以爬到楼顶。

例如:

输入:n=2

输出:2     //有两种方法可以到达楼顶,1阶+1阶,2阶。

输入:n=3

输出:3     //有3种方法可以爬到楼顶,1阶+1阶+1阶,1阶+2阶,2阶+1阶。

定义状态:设dp[i]为到达第i个台阶的数量

        状态转移方程:

        要到达第i个台阶,有种方式

1,从第i-1个台阶爬上一个台阶

2,从第i-2个台阶爬上两个台阶

因此:到达第 i 个台阶的方法数量是到第 i-1 个台阶和 i-1 个台阶方法的总和

        dp[i] = dp[i-1] + dp[i-2]        ,i>2

        dp[i] = 1        ,i<2

i = 3开始计算到n

#include<iostream>
using namespace std;
int climbstairs(int n)
{int dp[n+1];for(int i=0;i<=n;i++){if(i<2){dp[i] = 1;}else{dp[i] = dp[i-1]+dp[i-2];}		}return dp[n];
}
int main()
{int n=0;cin>>n;int m=climbstairs(n);cout<<m<<endl;return 0;system("pause");
}

http://www.xdnf.cn/news/382501.html

相关文章:

  • C++模板梳理
  • JAVA练习题(3) 开发验证码
  • 如何避免软件腐朽
  • jflash下载时出现 Could not read unit serial number! 的解决方法
  • 数据结构—(概述)
  • 【typenum】 1 说明文件(README.md)
  • 【AI论文】迈向多模态通才之路:通用层级与通用基准
  • 一文讲透MCP的原理及实践
  • Kubernetes生产实战(十二):无工具容器网络连接数暴增指南
  • 【Day 24】HarmonyOS端云一体化开发:云函数
  • C PRIMER PLUS——第8节:字符串和字符串函数
  • 初等数论--欧拉定理及证明
  • 计算最短路径的数量模板(最短路)
  • 【智能指针】
  • 前端项目中单元测试与集成测试的管理实践
  • 基于51单片机的模拟洗衣机控制面板proteus仿真
  • JavaScript篇:async/await 错误处理指南:优雅捕获异常,告别失控的 Promise!
  • Java并发编程,从线程安全到死锁避免的实战解析
  • Java代码日志嵌入打包时间
  • 【排错】dify1.3.1插件市场安装报错问题
  • 《从零开始:构建你的第一个区块链应用》
  • 什么是文件描述符(File Descriptor,FD)
  • 45.中医知识问答管理员端对话信息查看功能bug修复(1)
  • 在 Vue 3 中实现刮刮乐抽奖
  • 进阶 DFS 学习笔记
  • 地学领域中常见的数据类型总结
  • 游戏服务器出现卡顿该怎么处理?
  • 学习黑客5 分钟深入浅出理解Linux Logs [特殊字符]
  • 【C++】string类
  • leetcode0829. 连续整数求和-hard