Skip to content

Commit 1dc19b5

Browse files
authored
Update 2328-number-of-increasing-paths-in-a-grid.js
1 parent c663f63 commit 1dc19b5

File tree

1 file changed

+38
-27
lines changed

1 file changed

+38
-27
lines changed

2328-number-of-increasing-paths-in-a-grid.js

+38-27
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,47 @@
22
* @param {number[][]} grid
33
* @return {number}
44
*/
5-
var countPaths = function(grid) {
6-
let MOD = 1e9 + 7;
7-
let res = 0;
8-
let M = grid.length, N = grid[0].length;
5+
var countPaths = function (grid) {
6+
const MOD = 1e9 + 7
7+
let res = 0
8+
const M = grid.length,
9+
N = grid[0].length
910

1011
const dp = Array.from({ length: M }, () => Array(N))
1112

12-
for (let r = 0; r < M; r++) {
13-
for (let c = 0; c < N; c++) {
14-
res = (res + dfs(grid, r, c, dp)) % MOD;
15-
}
16-
}
17-
return res;
13+
for (let r = 0; r < M; r++) {
14+
for (let c = 0; c < N; c++) {
15+
res = (res + dfs(r, c)) % MOD
16+
}
17+
}
18+
return res
1819

19-
function dfs(grid, r, c, dp) {
20-
if (dp[r][c] != null) {
21-
return dp[r][c];
22-
}
23-
let MOD = 1e9 + 7;
24-
let res = 1;
25-
let M = grid.length, N = grid[0].length;
26-
27-
for (const dir of [[-1, 0], [0, -1], [1, 0], [0, 1]]) {
28-
let nr = r + dir[0], nc = c + dir[1];
29-
if (nr < 0 || nr >= M || nc < 0 || nc >= N || grid[nr][nc] <= grid[r][c]) {
30-
continue;
31-
}
32-
res = (res + dfs(grid, nr, nc, dp))%MOD;
20+
function dfs(r, c) {
21+
if (dp[r][c] != null) {
22+
return dp[r][c]
23+
}
24+
let res = 1
25+
26+
for (const dir of [
27+
[-1, 0],
28+
[0, -1],
29+
[1, 0],
30+
[0, 1],
31+
]) {
32+
const nr = r + dir[0],
33+
nc = c + dir[1]
34+
if (
35+
nr < 0 ||
36+
nr >= M ||
37+
nc < 0 ||
38+
nc >= N ||
39+
grid[nr][nc] <= grid[r][c]
40+
) {
41+
continue
3342
}
34-
dp[r][c] = res;
35-
return res;
43+
res = (res + dfs(nr, nc)) % MOD
3644
}
37-
};
45+
dp[r][c] = res
46+
return res
47+
}
48+
}

0 commit comments

Comments
 (0)