Skip to content

Commit ab46d51

Browse files
committed
feat: update solutions to lc problem: No.0064
No.0064.Minimum Path Sum
1 parent 5524e1d commit ab46d51

File tree

4 files changed

+85
-13
lines changed

4 files changed

+85
-13
lines changed

solution/0000-0099/0064.Minimum Path Sum/README.md

+32-5
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@
4242

4343
<!-- 这里可写通用的实现逻辑 -->
4444

45-
动态规划。假设 `dp[i][j]` 表示到达网格 `(i,j)` 的最小数字和,先初始化 dp 第一列和第一行的所有值,然后利用递推公式:`dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j]` 求得 dp。
45+
**方法一:动态规划**
46+
47+
假设 `dp[i][j]` 表示到达网格 `(i,j)` 的最小数字和,先初始化 dp 第一列和第一行的所有值,然后利用递推公式:`dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j]` 求得 dp。
4648

4749
最后返回 `dp[m - 1][n - 1]` 即可。
4850

@@ -107,15 +109,13 @@ function minPathSum(grid: number[][]): number {
107109
for (let j = 1; j < n; ++j) {
108110
dp[0][j] = dp[0][j - 1] + grid[0][j];
109111
}
110-
// dp
111112
for (let i = 1; i < m; ++i) {
112113
for (let j = 1; j < n; ++j) {
113-
let cur = grid[i][j];
114-
dp[i][j] = cur + Math.min(dp[i - 1][j], dp[i][j - 1]);
114+
dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];
115115
}
116116
}
117117
return dp[m - 1][n - 1];
118-
}
118+
};
119119
```
120120

121121
### **C++**
@@ -206,6 +206,33 @@ public class Solution {
206206
}
207207
```
208208

209+
### **JavaScript**
210+
211+
```js
212+
/**
213+
* @param {number[][]} grid
214+
* @return {number}
215+
*/
216+
var minPathSum = function (grid) {
217+
let m = grid.length,
218+
n = grid[0].length;
219+
let dp = Array.from({ length: m }, v => new Array(n).fill(0));
220+
dp[0][0] = grid[0][0];
221+
for (let i = 1; i < m; ++i) {
222+
dp[i][0] = dp[i - 1][0] + grid[i][0];
223+
}
224+
for (let j = 1; j < n; ++j) {
225+
dp[0][j] = dp[0][j - 1] + grid[0][j];
226+
}
227+
for (let i = 1; i < m; ++i) {
228+
for (let j = 1; j < n; ++j) {
229+
dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];
230+
}
231+
}
232+
return dp[m - 1][n - 1];
233+
};
234+
```
235+
209236
### **...**
210237

211238
```

solution/0000-0099/0064.Minimum Path Sum/README_EN.md

+29-4
Original file line numberDiff line numberDiff line change
@@ -95,15 +95,13 @@ function minPathSum(grid: number[][]): number {
9595
for (let j = 1; j < n; ++j) {
9696
dp[0][j] = dp[0][j - 1] + grid[0][j];
9797
}
98-
// dp
9998
for (let i = 1; i < m; ++i) {
10099
for (let j = 1; j < n; ++j) {
101-
let cur = grid[i][j];
102-
dp[i][j] = cur + Math.min(dp[i - 1][j], dp[i][j - 1]);
100+
dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];
103101
}
104102
}
105103
return dp[m - 1][n - 1];
106-
}
104+
};
107105
```
108106

109107
### **C++**
@@ -194,6 +192,33 @@ public class Solution {
194192
}
195193
```
196194

195+
### **JavaScript**
196+
197+
```js
198+
/**
199+
* @param {number[][]} grid
200+
* @return {number}
201+
*/
202+
var minPathSum = function (grid) {
203+
let m = grid.length,
204+
n = grid[0].length;
205+
let dp = Array.from({ length: m }, v => new Array(n).fill(0));
206+
dp[0][0] = grid[0][0];
207+
for (let i = 1; i < m; ++i) {
208+
dp[i][0] = dp[i - 1][0] + grid[i][0];
209+
}
210+
for (let j = 1; j < n; ++j) {
211+
dp[0][j] = dp[0][j - 1] + grid[0][j];
212+
}
213+
for (let i = 1; i < m; ++i) {
214+
for (let j = 1; j < n; ++j) {
215+
dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];
216+
}
217+
}
218+
return dp[m - 1][n - 1];
219+
};
220+
```
221+
197222
### **...**
198223

199224
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* @param {number[][]} grid
3+
* @return {number}
4+
*/
5+
var minPathSum = function (grid) {
6+
let m = grid.length,
7+
n = grid[0].length;
8+
let dp = Array.from({ length: m }, v => new Array(n).fill(0));
9+
dp[0][0] = grid[0][0];
10+
for (let i = 1; i < m; ++i) {
11+
dp[i][0] = dp[i - 1][0] + grid[i][0];
12+
}
13+
for (let j = 1; j < n; ++j) {
14+
dp[0][j] = dp[0][j - 1] + grid[0][j];
15+
}
16+
for (let i = 1; i < m; ++i) {
17+
for (let j = 1; j < n; ++j) {
18+
dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];
19+
}
20+
}
21+
return dp[m - 1][n - 1];
22+
};

solution/0000-0099/0064.Minimum Path Sum/Solution.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@ function minPathSum(grid: number[][]): number {
99
for (let j = 1; j < n; ++j) {
1010
dp[0][j] = dp[0][j - 1] + grid[0][j];
1111
}
12-
// dp
1312
for (let i = 1; i < m; ++i) {
1413
for (let j = 1; j < n; ++j) {
15-
let cur = grid[i][j];
16-
dp[i][j] = cur + Math.min(dp[i - 1][j], dp[i][j - 1]);
14+
dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];
1715
}
1816
}
1917
return dp[m - 1][n - 1];
20-
}
18+
};

0 commit comments

Comments
 (0)