64. Minimum Path Sum
June 24, 2025
04:32 AM
No headings found
Loading content...
No headings found
Problem
Bài toán yêu cầu tìm đường đi từ góc bên trái → góc dưới bên phải của một matrix số nguyên không âm, sao cho tổng các số trên đường đi là nhỏ nhất. Bạn chỉ được phép đi sang phải hoặc xuống dưới tại mỗi bước
Approach
(i, j) , tổng nhỏ nhất để đến được ô này là giá trị của ô đó cộng với tổng nhỏ nhất của ô bên trái (i, j - 1) hoặc ô phía trên (i - 1, j) chọn giá trị nhỏ hơndp[i][j] = min(dp[i - 1][j], dp[i][j - 1] + grid[i][j]) Time and space complexity
Solution
1function minPathSum(grid: number[][]): number {
2 const rows = grid.length;
3 const cols = grid[0].length;
4 for (let i = 0; i < rows; i++) {
5 for (let j = 0; j < cols; j++) {
6 if (i === 0 && j === 0) continue
7 else if (i === 0) grid[i][j] += grid[i][j - 1];
8 else if (j === 0) grid[i][j] += grid[i - 1][j]
9 else grid[i][j] += Math.min(grid[i - 1][j], grid[i][j - 1])
10 }
11 }
12 return grid[rows - 1][cols - 1]
13};