新闻详情

新闻详情

首页 / 资讯中心 / 详情

22.爬楼梯:动态规划的Hello World

发布时间:2026/9/26 8:53:06来源:尧图网络
22.爬楼梯:动态规划的Hello World
一、问题引入爬楼梯是动态规划的经典入门问题题目描述如下有10级台阶一次只能走1步或2步请问一共有多少种走法二、动态规划思路解析动态规划的核心是记录子问题答案避免重复计算我们可以通过递推的方式逐步求解初始状态第1级台阶只有1种走法直接走1步即dp[1] 1第2级台阶有2种走法走两次1步或直接走2步即dp[2] 2递推公式走到第n级台阶的走法等于走到第n-1级的走法再走1步加上走到第n-2级的走法再走2步即dp[n] dp[n-1] dp[n-2]计算过程按照递推公式逐步计算dp[3] dp[2] dp[1] 2 1 3dp[4] dp[3] dp[2] 3 2 5dp[5] dp[4] dp[3] 5 3 8dp[6] dp[5] dp[4] 8 5 13dp[7] dp[6] dp[5] 13 8 21dp[8] dp[7] dp[6] 21 13 34dp[9] dp[8] dp[7] 34 21 55dp[10] dp[9] dp[8] 55 34 89三、代码实现1. C语言实现#include stdio.h int main() { int dp[11]; dp[0] 1; // 边界条件第0级台阶有1种走法不走 dp[1] 1; for (int i 2; i 10; i) { dp[i] dp[i-1] dp[i-2]; } printf(10级台阶的走法总数%d\n, dp[10]); return 0; }2. Python实现def climb_stairs(n): if n 1: return 1 dp [0] * (n 1) dp[1] 1 dp[2] 2 for i in range(3, n 1): dp[i] dp[i-1] dp[i-2] return dp[n] print(10级台阶的走法总数, climb_stairs(10))3. 空间优化版C语言#include stdio.h int main() { int a 1, b 2; if (10 1) { printf(10级台阶的走法总数1\n); return 0; } for (int i 3; i 10; i) { int c a b; a b; b c; } printf(10级台阶的走法总数%d\n, b); return 0; }四、总结动态规划的核心是拆分问题记录子问题结果避免重复计算。爬楼梯问题的递推公式为dp[n] dp[n-1] dp[n-2]本质是斐波那契数列的应用。可以通过空间优化将空间复杂度从O(n)降低到O(1)。 点赞 收藏 关注获取更多算法入门内容
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Cursor平替Void开源AI编程工具实测:TaoToken统一Key接入与config.toml配置验证 2026/9/26 10:40:04

Cursor平替Void开源AI编程工具实测:TaoToken统一Key接入与config.toml配置验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
ETest 装备软件测试平台配 TaoToken:国产 CPU 与 OS 下的统一 Key 接入配置骨架 2026/9/26 10:40:03

ETest 装备软件测试平台配 TaoToken:国产 CPU 与 OS 下的统一 Key 接入配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
CurSor AI编程系列(一)入门及部署:TaoToken 统一 Key 配置与 settings.json 骨架 2026/9/26 10:40:03

CurSor AI编程系列(一)入门及部署:TaoToken 统一 Key 配置与 settings.json 骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
SQL中的函数:从聚合函数到自定义函数的T-SQL实战配置 2026/9/26 10:40:02

SQL中的函数:从聚合函数到自定义函数的T-SQL实战配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Hadoop实现商品推荐系统:Item-CF离线计算实战 2026/9/26 10:40:01

Hadoop实现商品推荐系统:Item-CF离线计算实战

简介:本资源是一套基于Hadoop生态构建的商品推荐系统实践项目,面向大数据初学者与分布式计算入门开发者,聚焦电商场景下的用户行为分析与个性化推荐落地。项目依托HDFS分布式存储与MapReduce批处理框架,完成从用户-商品交互数据采…

阅读更多 →
Loop Engineering深度解析与实战指南:用TaoToken统一Key打通AI编程Agent工作流 2026/9/26 10:39:48

Loop Engineering深度解析与实战指南:用TaoToken统一Key打通AI编程Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉