LeedCode_03-爬楼梯(70)

简介: LeedCode_03-爬楼梯(70)

趣味拓展:

为什么全世界的母鸡都是短腿?


(答案在文末)


爬楼梯(LeedCode_第70题)

1.题目描述

示例 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

通过次数:

1M

提交次数:

1.9M

通过率:

54.0%


2.输入描述


3.代码实现

如果n==1,显然只有从0->1一种方法:f(1)=1;
如果n==2,那么有0->1->2、0->2两种方:f(2)=2;
如果n==3,那么可以先爬到第1阶,然后爬两个台阶,
或者先爬到第二阶,然后爬一个台阶,显然f(3)=f(2)+f(1);
以此类推
对于n>=3个台阶,可以先爬到第n-1个台阶,
然后再爬一个台阶,或者先爬到n-2个台阶,然后爬2个台阶,
因此我们可以找出规律:f(n)=f(n-1)+f(n-2)。
class Solution {
    private Map<Integer,Integer> store=new HashMap<>();
    public int climbStairs(int n) {
        if (n==1){
            return 1;
        }
        if (n==2){
            return 2;
        }
        if (null!=store.get(n)){
            return store.get(n);
        }
        else{
            int result=climbStairs(n-1)+climbStairs(n-2);
            store.put(n,result);
            return result;
        }
}
}


4.拓展

自己先尝试,树立基本思想,之后再借鉴别人代码,更能受益


5.趣味拓展答案

防止鸡蛋摔碎~


相关文章
|
9月前
1204:爬楼梯
1204:爬楼梯
|
9月前
LeedCode_04-斐波那契数列(剑指offer-10)
LeedCode_04-斐波那契数列(剑指offer-10)
|
10月前
|
算法 测试技术 Python
第十二届蓝桥杯《杨辉三角》-二分法
第十二届蓝桥杯《杨辉三角》-二分法
60 0
|
11月前
|
存储
【leedcode】0002. 链数之和
【leedcode】0002. 链数之和
40 0
|
11月前
【leedcode】0005. 最长回文子串
【leedcode】0005. 最长回文子串
31 0
leetcode每日一题:134. 加油站
leetcode每日一题:134. 加油站
|
存储 算法 Python
力扣每日一题:496、503、739 单调栈问题三连发!
力扣每日一题:496、503、739 单调栈问题三连发!
239 0
力扣每日一题:226、111、112 二叉树三连发!
力扣每日一题:226、111、112 二叉树三连发!
99 0

热门文章

最新文章