1
var countPaths = function (grid) {2
let mod = Math.pow(10, 9) + 7;4
let rows = grid.length,5
columns = grid[0].length;8
.map((_) => Array(columns).fill(0));10
const dfs = (r, c, preVal) => {11
if (r < 0 || r == rows || c < 0 || c == columns || grid[r][c] <= preVal)13
if (dp[r][c]) return dp[r][c];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])) %22
for (let i = 0; i < rows; i++) {23
for (let j = 0; j < columns; j++) {24
result += dfs(i, j, -1) % mod;