剑指 Offer II 100. 三角形中最小路径之和

123 阅读1分钟

剑指 Offer II 100. 三角形中最小路径之和

给定一个三角形 triangle ,找出自顶向下的最小路径和。

输入: triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]

image.png

自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。

代码实现

var minimumTotal = function (brr) {
  var m = brr.length;
  var dp = [brr[0][0]];
  for (var i = 1; i < m; i++) {
    var curr = dp.slice();
    var arr = brr[i]
    var  n = arr.length;
    for (var j = 0; j < n; j++) {
      if (curr[j - 1] === undefined) {
        dp[j] = curr[j] + arr[j];
      } else if (curr[j] === undefined) {
        dp[j] = curr[j - 1] + arr[j];
      } else {
        dp[j] = Math.min(curr[j - 1], curr[j]) + arr[j];
      }
    }
  }
  return Math.min(...dp);
};

代码调试

console.log(minimumTotal([[2],[3,4],[6,5,7],[4,1,8,3]]));