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

LeetCode热题100——70. 爬楼梯

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

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

示例 1:

输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。

  1. 1 阶 + 1 阶
  2. 2 阶
    示例 2:

输入:n = 3
输出:3
解释:有三种方法可以爬到楼顶。

  1. 1 阶 + 1 阶 + 1 阶
  2. 1 阶 + 2 阶
  3. 2 阶 + 1 阶

提示:

1 <= n <= 45

思路

动态规划,例如爬3阶的方法数 = 爬2阶 + 爬1阶的,因为3阶要么是从1阶+2来的,要么是从 2阶+1来的,总体满足, f(n) = f(n-1)+f(n-2)

能不能直接使用递归去解决呢? 这里有很大的坑在等着你!栈溢出超时!
在这里插入图片描述
换个思路
f(1) = 1
f(2) = 2
f(3) = 1+2 = 3
f(4) = f(3) + f(2) = 3 +2 = 5

f(n) = f(n-2)+f(n-1) = a + b

 public int climbStairs(int n) {if(n<=2) return n;int a =1;int b =2;for(int i=3;i<=n;i++){int sum = a +b;a = b;b = sum;}return b;}

相关文章:

  • SQL盲注问题深度解析与防范策略
  • Python 第 11 节课 - string 与 random 的方法
  • 《Vue3学习手记5》
  • 科学养生,开启健康生活新方式
  • 【Flume 】Windows安装步骤、配置环境
  • 深度解析责任链Filter模式:构建灵活可扩展的请求处理管道
  • ngrok 内网穿透技术系统性文档
  • MES系列-MOM(Manufacturing Operations Management,制造运营管理)
  • Eclipse 插件开发 2
  • 深入解析Dify中的文本清洗处理器:CleanProcessor详解
  • NSIS打包
  • 数据存储与安全保障双重buff叠满!极空间NAS『病毒查杀』功能上线,如何妙用?
  • Unity-Shader详解-其二
  • STM32 开发 - stm32f10x.h 头文件(内存映射、寄存器结构体与宏、寄存器位定义、实现点灯案例)
  • DAM-3B,英伟达推出的多模态大语言模型
  • 正确应对监管部门的数据安全审查
  • KEPServerEX 6与西门子1500PLC进行OPC通讯
  • 搜广推校招面经八十二
  • 代码随想录打卡|Day28 动态规划(理论基础、斐波那契数列、爬楼梯、使用最小花费爬楼梯)
  • Pycharm 代理配置
  • 如何做大中国拳击产业的蛋糕?这项赛事给出办赛新思考
  • 摩根士丹利基金雷志勇:AI带来的产业演进仍在继续,看好三大景气领域
  • 大家聊中国式现代化|郑崇选:提升文化软实力,打造文化自信自强的上海样本
  • 体坛联播|AC米兰挺进意大利杯决赛,弗雷戴特宣布退役
  • 人民日报整版聚焦第十个“中国航天日”:星辰大海,再启新程
  • 山东一季度GDP为23466亿元,同比增长6.0%