leetcode 70:爬楼梯

本来打算用递归的方式来做,但是超出时间限制,发现直接用数组代替就好了

a[n-1]=a[n-2]+a[n-3];

int climbStairs(int n) {
    std::vector<int> a(n);

    if(n==1) {
        return 1;
    }
    if(n==2) {
        return 2;
    }
    if(n>2) {
        a[0] = 1;
        a[1] = 2;
        for (int i =2;i<n;i++){
            a[i]=a[i-1]+a[i-2];
        }
        return a[n-1];
    }
}

猜你喜欢

转载自blog.csdn.net/u013263891/article/details/84678049