LeetCode - 70. 爬楼梯

70. 爬楼梯

class Solution {

    /**
     * f(n) 表示爬到第n层的方法数
     * 第n层可由第n-1层迈1步到达
     * 亦可由第n-2层迈2步到达
     * 所以 f(n) = f(n-1) + f(n-2)
     * @param n
     * @return
     */
    public int climbStairs(int n) {
        if (n == 1) {
            return 1;
        }
        if (n == 2) {
            return 2;
        }
        
        int a = 1, b = 2, c = 3;

        for (int i = 3; i <= n; ++ i) {
            c = a + b;
            a = b;
            b = c;
        }
        
        return c;
    }
}


猜你喜欢

转载自blog.51cto.com/tianyiya/2172843