Leetcode算法题(十三)---------爬楼梯
题目简述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?n是正整数
示例:
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶
输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶
一.我的解法
分析:一共有n个台阶,一次可以走一个台阶,或者两个台阶。那么,走到台阶顶时,一共有多少种走法。
比如三个台阶,你可以 1,2。。。或者1,1,1 或者2,1。。一共三种走法。
举几个简单的例子:
另外一种思路:一共n阶台阶,倒数第一步时,无视前面怎么走,有两种走法:
1.走一步
2.走两步
两种走法的走法种数相加就是n阶台阶的情况下的所有种数,即:f(n)=f(n-1)+f(n-2)
public class MyTest19 {
public static void main(String[] args) {
Solution23 solution23 = new Solution23();
int i = solution23.climbStairs(5);
System.out.println(i)