爬楼梯

来源:互联网 发布:知乎下载 编辑:程序博客网 时间:2024/04/30 08:10

假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?

样例

比如n=3,1+1+1=1+2=2+1=3,共有3中不同的方法

返回 3

解题思路:用手动比划一下,会发现前两次不同方法之和等于本次的方法数量

class Solution {public:    /**     * @param n: An integer     * @return: An integer     */    int climbStairs(int n) {        // write your code here        if (n <= 2 && n > 0)        {            return n;        }        if (n == 0)        {            return 1;        }        int *temp = new int[n];        temp[0] = 1;        temp[1] = 2;        for (int i = 2; i < n; i++)        {            temp[i] = temp[i - 1] + temp[i - 2];        }        return temp[n-1];    }};


0 0