爬N阶楼梯
正在爬楼梯,需要 n 阶才能到达楼顶。每次你可以爬 1 或 2 个台阶,有多少种不同的方法可以爬到楼顶?
例如:
输入 n = 3
输出 n = 3
有三种方法可以爬到楼顶:
1阶 +1阶 +1 阶;
1阶 + 2阶
2阶 + 1阶
思路:
一阶楼梯只有一种方法
二阶楼梯有两种方法
三阶楼梯有三种方法
四阶楼梯有五种方法
因第N个台阶只能从第N-1和N-2个台阶走上去m,N阶楼梯有N-1阶楼梯的方法加N-2阶楼梯的方法。
int climbStairs(int n){
if(n<=2) return n;
int i=1,j=2,step=0;
for(int m=3;m<=n;m++){
step=i+j; //n-1与n-2个台阶的走法总和
i=j; //更新n-1个台阶的走法
j=step; //更新n个台阶的走法
}
return step;
}
爬N阶楼梯最先出现在Python成神之路。
版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/19644.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论