Skip to content

Commit 88be6ff

Browse files
authored
Update 1368-minimum-cost-to-make-at-least-one-valid-path-in-a-grid.js
1 parent 5b4fffd commit 88be6ff

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

1368-minimum-cost-to-make-at-least-one-valid-path-in-a-grid.js

+32
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,35 @@
1+
/**
2+
* @param {number[][]} grid
3+
* @return {number}
4+
*/
5+
function minCost(grid) {
6+
const m = grid.length, n = grid[0].length
7+
const dirs = [[0, 1], [0, -1], [1, 0], [-1, 0]] // right, left, down, up
8+
const dp = Array.from({ length: m }, () => Array(n).fill(Infinity))
9+
let q = [[0, 0]]
10+
dp[0][0] = 0
11+
while(q.length) {
12+
const tmp = []
13+
for(let idx = q.length - 1; idx >= 0; idx--) {
14+
const [r, c] = q[idx]
15+
for(let i = 0; i < dirs.length; i++) {
16+
const [dr, dc] = dirs[i]
17+
const nr = r + dr, nc = c + dc
18+
if(nr < 0 || nr >= m || nc < 0 || nc >= n) continue
19+
if(dp[nr][nc] > dp[r][c] + (i === grid[r][c] - 1 ? 0 : 1)) {
20+
dp[nr][nc] = dp[r][c] + (i === grid[r][c] - 1 ? 0 : 1)
21+
tmp.push([nr, nc])
22+
}
23+
}
24+
}
25+
q = tmp
26+
}
27+
28+
return dp[m - 1][n - 1]
29+
}
30+
31+
// another
32+
133
/**
234
* @param {number[][]} grid
335
* @return {number}

0 commit comments

Comments
 (0)