78 阅读1分钟

class Solution {

int[] memory;

public int numWays(int n) {
    memory = new int[n+1];
    return help(n);
}

public int help(int n) {
    // 递归结束的条件
    if (n <= 1) {
        return 1;
    }

    // 判断是否计算过了
    if (memory[n] != 0) {
        return memory[n];
    }

    // 没有在 memory 中找到就计算一下,然后在记录到 memory 中
    int i = help(n - 1) + help(n - 2);
    i %= 1000000007;
    memory[n] = i;

    return memory[n];
}
}·

image.png