Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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‎

Lines changed: 32 additions & 5 deletions
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‎

Lines changed: 29 additions & 4 deletions
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
```
Lines changed: 22 additions & 0 deletions
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‎

Lines changed: 2 additions & 4 deletions
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)

AltStyle によって変換されたページ (->オリジナル) /