趣味拓展:
为什么全世界的母鸡都是短腿?
(答案在文末)
爬楼梯(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.趣味拓展答案
防止鸡蛋摔碎~