070.爬楼梯

题目:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

代码:

class Solution {
public:
    int climbStairs(int n) {
        if(n == 0)
        {
            return 0;
        }
        if(n == 1)
        {
            return 1;
        }
        if(n == 2)
        {
            return 2;
        }
        int temp1 = 1;
        int temp2 = 2;
        int result = 0;
        for(int i = 3; i <= n; i++){
            result = temp1 + temp2;
            temp1 = temp2;
            temp2 = result;
        }
        return result;
    }
};

笔记:思路:可以这样想,n个台阶,一开始可以爬 1 步,也可以爬 2 步,那么n个台阶爬楼的爬楼方法就等于 一开始爬1步的方法数 + 一开始爬2步的方法数,这样我们就只需要计算n-1个台阶的方法数和n-2个台阶方法数,同理,计算n-1个台阶的方法数只需要计算一下n-2个台阶和n-3个台阶,计算n-2个台阶需要计算一下n-3个台阶和n-4个台阶……参考自:https://www.cnblogs.com/patatoforsyj/p/9463650.html

猜你喜欢

转载自www.cnblogs.com/kloseer/p/10367424.html