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; } }