2020年6月13日 09:15:45 爬楼梯 climbStairs
默认格式:
class Solution {
public int climbStairs(int n) {
}
}
解题思路:
1,找通式
这个应该能够找到通式才对。
1:1种
2:2种
3:3种
4:5种
5:8种
6:13种
7:21种
。。。找不到通式
2,递归
这么简单一道题要用递归真的很蠢诶。
递归的思想,给一个当前数,和一个终点数,然后进行两次递归,第一次是+1,第二次是+2.当当前值是结果值时,方法数+1,超过结果值时不加1.
在做的时候自己优化了一下,把+1变成了减1,把0作为了终点
int times=0;
public int climbStairs(int n) {
if(n-1==0){
times++;
}
else if(n-1>0)
climbStairs(n-1);
if (n-2==0)
times++;
else if(n-1>0)
climbStairs(n-2);
return times;
}