动态规划
function minPathSum(grid: number[][]): number {
const m = grid[0].length
const n = grid.length
for(let x = 1; x < m; x++) {
grid[0][x] = grid[0][x] + grid[0][x - 1]
}
for(let y = 1; y < n; y++) {
grid[y][0] = grid[y][0] + grid[y - 1][0]
}
for(let y = 1; y < n; y++) {
for(let x = 1; x < m; x++) {
grid[y][x] = Math.min(grid[y -1][x], grid[y][x - 1]) + grid[y][x]
}
}
return grid[n - 1][m - 1]
};