首页 > 试题广场 >

爬楼梯

[编程题]爬楼梯
  • 热度指数:18961 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
你在爬楼梯,需要n步才能爬到楼梯顶部
每次你只能向上爬1步或者2步。有多少种方法可以爬到楼梯顶部?

示例1

输入

1

输出

1
示例2

输入

3

输出

3
头像 南极长生大帝
发表于 2020-08-23 16:57:35
规律:f(1)=1,f(2)=2,f(3)=f(2)+f(1),f(n)=f(n-1)+f(n-2)结果完全依赖于前两阶梯方法之和1.递归 int method(int n){ if(n<=2){ return n; } return method(n- 展开全文
头像 诗悦网络内推_有问必答
发表于 2021-11-02 13:30:57
解题思路 因为每次只能爬1或2个台阶, 从1个2个台阶开始推断, 并将问题n阶台阶拆解为求解到达n-1阶台阶以及n-2阶台阶的总和, 过程中缓存已记录阶数对应的数据 代码 -spec climb_stairs(N :: integer()) -> integer(). climb_stairs 展开全文
头像 华科不平凡
发表于 2020-08-30 20:15:32
两种方法: 斐波那契数列(找规律——爬1层1种,2层2种,3层3种,4层5种...) 动态规划 有必要总结一下找规律的解法:这种解法需要细心和耐心,我们一般取出前3种情况看一下规律,如果规律不明显,可以增加情况,直到过于复杂才放弃此解法。PS:前几种情况同样可以用来检验算法的正确性 动态规划 展开全文