Skip to content

Commit bbc58d5

Browse files
authored
Create 2290-minimum-obstacle-removal-to-reach-corner.js
1 parent ada43cb commit bbc58d5

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/**
2+
* @param {number[][]} grid
3+
* @return {number}
4+
*/
5+
var minimumObstacles = function(grid) {
6+
const m = grid.length, n = grid[0].length
7+
const dist = Array.from({ length: m }, () => Array(n).fill(Infinity))
8+
const pq = new MinPriorityQueue({ priority: (x) => x[0] })
9+
const dirs = [[1, 0], [-1, 0], [0, 1], [0, -1]]
10+
dist[0][0] = 0
11+
pq.enqueue([dist[0][0], 0, 0])
12+
while(pq.size()) {
13+
const [v, i, j] = pq.dequeue().element
14+
if(i === m - 1 && j === n - 1) return v
15+
for(const [dx, dy] of dirs) {
16+
const nx = i + dx, ny = j + dy
17+
if(nx >= 0 && nx < m && ny >= 0 && ny < n && v + grid[nx][ny] < dist[nx][ny]) {
18+
dist[nx][ny] = v + grid[nx][ny]
19+
pq.enqueue([dist[nx][ny], nx, ny])
20+
}
21+
}
22+
}
23+
};

0 commit comments

Comments
 (0)