0
点赞
收藏
分享

微信扫一扫

动态规划入门 JS

7dcac6528821 2022-04-17 阅读 80

动态规划入门

动态规划入门

长话短说,动态规划有很多情景,下面记录一下经典解题思路,最重要的就是数学归纳法?!

BM62 斐波那契数列

在这里插入图片描述
也就是f(n)=f(n-1)+f(n-2),上代码

let number = 8
// 最简单的递归,一旦number==100,那么这个算法会卡死,可以对重复计算的部分进行优化,见进阶篇
function res1(num) {
    if (num == 0) { return 0 }
    if (num == 1) { return 1 }
    return res1(num - 1) + res1(num - 2)
}
console.log(res1(number))

BM64 最小花费爬楼梯

在这里插入图片描述
这题也很简单,找出递归关系,f(n)=Min(f(n-1)+cost[n-1],f(n-2)+cost[n-1] ),上代码,还是一样可能内存溢出

function minCostClimbingStairs(cost) {
  // write code here

  if (cost.length == 0) return 0;
  if (cost.length == 1) return 0;

  return Math.min(
    cost[cost.length - 1] + minCostClimbingStairs(cost.slice(0, cost.length - 1)),
    cost[cost.length - 2] + minCostClimbingStairs(cost.slice(0, cost.length - 2))
  );
}
module.exports = {
  minCostClimbingStairs: minCostClimbingStairs,
};

BM65 最长公共子序列(二)

在这里插入图片描述

这个先放着

BM66 最长公共子串

在这里插入图片描述
这个先放着

举报

相关推荐

0 条评论