【动态规划=递归+记忆化存储】跳台阶

求解代码

java 复制代码
public int jumpFloor(int number) {
        int[] memo = new int[number + 1];

        return dp(number, memo);
    }

    private int dp(int number,int[] memo){
        if(number<=2){
            return number;
        }
        

        if(memo[number]!=0){
            return memo[number];
        }

        memo[number]=dp(number-1, memo)+dp(number-2, memo);

        return memo[number];
    }

小贴士

1.要跳到第 n 级,最后一步只有两种可能:从 n-1 级跳 1 级上来、从 n-2 级跳 2 级上来,总方法数就是两者之和

2.构建一个备忘录数组,用来缓存已经计算过的结果,数组下标对应台阶数 ,值对应该台阶的跳法数

由于数组的默认值为00就表示该台阶的跳法数还未计算;

如果值≠0,就表示已经计算过,直接取值即可。

相关推荐
超级大福宝2 小时前
【力扣200. 岛屿数量】的一种错误解法(BFS)
数据结构·c++·算法·leetcode·广度优先
一颗青果2 小时前
auto | 尾置返回类型 | decltype | using | typedef
java·开发语言·算法
郝学胜-神的一滴2 小时前
何友院士《人工智能发展前沿》全景解读:从理论基石到产业变革
人工智能·python·深度学习·算法·机器学习
BHXDML2 小时前
第五章:支持向量机
算法·机器学习·支持向量机
2401_841495642 小时前
具身智能:从理论到现实,人工智能的下一场革命
人工智能·算法·机器人·硬件·具身智能·通用智能·专用智能
Felven2 小时前
B. MEXor Mixup
算法
阿崽meitoufa3 小时前
JVM虚拟机:垃圾收集算法
java·jvm·算法
练习时长一年3 小时前
LeetCode热题100(分割等和子集)
算法·leetcode·职场和发展
七号驿栈3 小时前
07_汽车信息安全算法在线验证工具(测试报告)
算法