/**
*
* @param matrix int整型二维数组 the matrix
* @return int整型
*/
function minPathSum(matrix) {
// write code here
let m = matrix.length;
if (m < 1) {
return 0;
}
let n = matrix[0].length;
let ans = [];
for (let i = 0; i <= m; i++) {
ans.push([]);
for (let j = 0; j <= n; j++) {
ans[i].push(1000007);
}
}
// 给ans[1][0]赋值也可以。因为一开始第一个点必须有一个是0,否则循环初始值不对
ans[0][1] = 0;
// 思路就是i,j节点的最小路径和等于上面(i-1,j)路径,左边(i,j-1)路径中小的那一个加上当前节点的花费
for (let i = 1; i <= m; i++) {
for (let j = 1; j <= n; j++) {
ans[i][j] = Math.min(ans[i - 1][j], ans[i][j - 1]) + matrix[i - 1][j - 1];
}
}
console.log(ans)
return ans[m][n];
}
module.exports = {
minPathSum: minPathSum
};