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?

public class Solution {
    public static HashMap<Integer,Integer> dp = new HashMap<Integer, Integer>();
    public int climbStairs(int n) {
        if (dp.containsKey(n)){
            return dp.get(n);
        }
        if (n==1) {
            return 1;
        }
        if (n==2) {
            return 2;
        }
        int ret = climbStairs(n-2)+climbStairs(n-1);
        dp.put(n, ret);
        return ret;
    }
}

 

posted @ 2014-01-06 11:40  23lalala  阅读(137)  评论(0编辑  收藏  举报