Climbing Stairs

You are climbing a stair case. It takes n steps to reach to the top.

Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

 

动态规划大水题。类似斐波那契额数列。

class Solution {
public:
    int climbStairs(int n) {
        if(n == 0 || n == 1|| n == 2)return n;
        
        int a =1,b=2,re = 0;
        for(int i =3 ; i <= n ; i++)
        {
            re = a+b;
            a =b;
            b =re;
        }
        return re;
        
    }
};

  

posted on 2014-03-01 14:50  pengyu2003  阅读(109)  评论(0编辑  收藏  举报

导航