Find Minimal cost from top to bottom

by Alex Myronov

JavaScript

var matrix = [
  [ 4, 7, 8, 6, 4 ],
  [ 6, 7, 3, 9, 2 ],
  [ 3, 8, 1, 2, 4 ],
  [ 7, 1, 7, 3, 7 ],
  [ 2, 9, 8, 9, 3 ] 
]


function findMinCost(cost) {
  const res = []

  for (let i =0; i < cost.length; i++) {
    res.push([])
    for (let j = 0; j < cost[i].length; j++) {
      // console.log('processing [' + i + '] ['+ j + ']')
      
      res[i][j] = cost[i][j]
      if (i === 0 && j > 0) {
        res[0][j] += res[0][j - 1]
      } else if (j === 0 && i > 0) {
        res[i][0] += res[i - 1][0]
      } else if (i > 0 && j > 0) {
        res[i][j] += Math.min(res[i - 1][j], res[i][j - 1]) 
      }
      
    }
  }
  
  return res
}


var r = findMinCost(matrix)
for (let k = 0; k < r.length; k++) {
  console.log(r[k])
}