Number of Increasing Paths in a Grid LeetCode solution in JavaScript

1
var countPaths = function (grid) {
2
let mod = Math.pow(10, 9) + 7;
3
let result = 0;
4
let rows = grid.length,
5
columns = grid[0].length;
6
let dp = Array(rows)
7
.fill(null)
8
.map((_) => Array(columns).fill(0));
9

10
const dfs = (r, c, preVal) => {
11
if (r < 0 || r == rows || c < 0 || c == columns || grid[r][c] <= preVal)
12
return 0;
13
if (dp[r][c]) return dp[r][c];
14
return (dp[r][c] =
15
(1 +
16
dfs(r + 1, c, grid[r][c]) +
17
dfs(r - 1, c, grid[r][c]) +
18
dfs(r, c + 1, grid[r][c]) +
19
dfs(r, c - 1, grid[r][c])) %
20
mod);
21
};
22
for (let i = 0; i < rows; i++) {
23
for (let j = 0; j < columns; j++) {
24
result += dfs(i, j, -1) % mod;
25
}
26
}
27

28
return result % mod;
29
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0