LeetCode ClimbingStairs

class Solution {
public:
    int climbStairs(int n) {
        if (n < 1) return 0;
        int a = 0;
        int b = 1;
        for (int i=0; i<n; i++) {
            int t = a + b;
            a = b;
            b = t;
        }
        return b;
    }    
};

发现leetcode上的题目很多也在剑指offer里有,这题也是,实际上算一个fab数列,因为对于一个n,可以先走一步,也可以先走两步,前者剩下n-1个台阶,后者剩下n-2,而假设我们已经求的(n-1)和(n-2)个台阶时的种数,这时f(n) = f(n-1) + f(n-2)

posted @ 2014-05-29 08:42  卖程序的小歪  阅读(131)  评论(0编辑  收藏  举报