leetcode - Climbing Stairs

leetcode - 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) {
        //DP Solution
        int climbNum[100]={0,1,2};
        for( int i = 3; i <= n; i++ ){
            climbNum[i] = climbNum[i-1] + climbNum[i-2];            
        }
        return climbNum[n];
        
        
        
        // Recursion Solution:
        //if(n==1) return 1;
        //if(n==2) return 2;
        //return climbStairs(n-1)+climbStairs(n-2);
        
    }
};

递归解会导致TLE,需要使用动态规划。

posted @ 2015-08-20 13:17  cnblogshnj  阅读(113)  评论(0编辑  收藏  举报