70. 爬楼梯
递归解法
public class Solution {// 用于缓存计算结果,防止重复计算HashMap<Integer, Integer> map = new HashMap<>();//设跳上 n 级台阶一共有 f(n) 种跳法,则 f(n) = f(n - 1) + f(n - 2)// 而 f(0) = 1, f(1) = 1public int climbStairs(int n) {if (n <= 3) return n;// 如果不存在,计算并缓存if (!map.containsKey(n - 1)) {map.put(n - 1, climbStairs(n - 1));}if (!map.containsKey(n - 2)) {map.put(n - 2, climbStairs(n - 2));}// 直接取缓存结果相加返回return map.get(n - 1) + map.get(n - 2);}}
