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?
递归+memory,其实就是DP的方法,比较基础的题目。
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
public int climbStairs(int n) {
if(n == 0 || n == 1) return 1;
else {
if(map.containsKey(n) == true) {
return map.get(n);
}
else {
int step = climbStairs(n-1) + climbStairs(n-2);
map.put(n, step);
return step;
}
}
}
没有评论:
发表评论