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

爬楼梯动态规划法

假设你正在爬楼梯。需要n阶你才能到达楼顶。

每次你可以爬12个台阶。你有多少种不同的方法可以爬到楼顶呢?

  1. 问题分析:

    • 每次可以爬 1 或 2 个台阶
    • 要爬到 n 阶台阶,有多少种不同的方法
  2. 思路推导:

    • 爬到第 n 阶台阶,最后一步只能是从 n-1 阶爬 1 阶,或者从 n-2 阶爬 2 阶
    • 所以递推关系是:f (n) = f (n-1) + f (n-2)
    • 边界条件:f (1) = 1(只有 1 种方法),f (2) = 2(两种方法)

class Solution {
public:
int climbStairs(int n) {
// 处理边界情况
if(n <= 2) return n;

// 动态规划解法,使用变量存储前两个状态,节省空间
int prev_prev = 1; // f(n-2)
int prev = 2; // f(n-1)
int current; // f(n)
for(int i = 3; i <= n; i++){
current = prev + prev_prev;
prev_prev = prev;
prev = current;
}

return prev;
}
};

  1. 添加了#include <iostream>using namespace std;以支持输入输出操作
  2. 编写了main函数,实现用户交互
  3. 添加了输入合法性检查,确保输入在题目要求的 1-45 范围内
  4. 实例化了Solution类并调用climbStairs方法进行计算
  5. 输出了清晰的结果提示

这种解法的时间复杂度是 O (n),空间复杂度是 O (1),因为我们只使用了有限的几个变量来存储中间结果,而没有使用数组。

http://www.cnnetsun.cn/news/86405.html

相关文章:

  • AutoGPT使用与架构全面解析
  • 高性能AI服务搭建:TensorRT与FP16精度校准实践
  • Dify与Anything-LLM整合打造企业智能问答系统
  • EmotiVoice:开源多情感TTS语音合成新体验
  • HunyuanVideo-Foley API详解与实战调用
  • FLUX.1-dev-Controlnet-Union环境配置全指南
  • Langchain-Chatchat本地部署完整指南
  • 场景化曝光:南宁出租车广告与GEO优化的协同密码
  • 卫星遥感数据核心参数解析:空间分辨率与时间分辨率
  • ComfyUI API使用指南:高效稳定的绘图接口
  • Dify平台如何整合外部API扩展AI能力?
  • FLUX.1-ControlNet统一模型Pro 2.0发布
  • Dify v0.6.9 源码部署与架构解析
  • Excalidraw:手绘风在线白板,高效又有趣
  • 工业通信网络深度解析:从设备集成到系统架构
  • 领英黑五B端客户营销指南
  • Git下载GitHub项目卡住?使用清华镜像代理地址快速获取
  • ComfyUI缺少Manager?手动安装教程
  • FaceFusion局域网访问与端口设置方法
  • LobeChat插件系统详解:如何为你的AI助手添加自定义能力
  • LobeChat能否标记不确定性?避免过度自信输出
  • Docker中TensorFlow-GPU部署与CUDA问题解决
  • 大模型学习路线(2026最新)从零基础入门到精通,看完这一篇就够了
  • NPM安装Socket.IO实现实时推送TensorRT状态
  • 手把手教你从0搭建一个智能体,全部跟下来你就Agent入门了!(超详细的讲解)
  • Linly-Talker:支持图片上传的AI数字人对话系统
  • Qwen3-VL-8B实现近实时视频流分析的实践探索
  • Qwen-Image-Edit-2509能否在手机上运行?
  • XTS 认证
  • 22、Perl正则表达式与程序交互全解析