/**
* @param {number[][]} grid
* @return {number}
*/
var getMaximumGold = function (grid) {
const m = grid.length
const n = grid[0].length
let res = 0
function dfs(row, col) {
if (
Math.min(row, col) < 0
|| row >= m
|| col >= n
|| grid[row][col] === 0
) return 0
let curr = grid[row][col]
grid[row][col] = 0
let down = dfs(row + 1, col)
let up = dfs(row - 1, col)
let left = dfs(row , col + 1)
let right = dfs(row , col - 1)
grid[row][col] = curr
return curr + Math.max(down, up, right, left)
}
for (let row = 0; row < m; row++) {
for (let col = 0; col < n; col++) {
res = Math.max(res, dfs(row, col))
}
}
return res
};
Related Posts
Spring Batch 5 : a simple use case with tests
Prerequisites: Basic knowledge on Java, spring batch, spring JPA. You can find the code used in this blog…
Player camera
Hello everyone! In today’s article, I’m going to show you two ways you can make a camera follow…
Embarking on the Cybersecurity Journey: A Beginner’s Guide
Hey everyone! 👋 Today, I took the plunge and decided to pursue the Complete Cybersecurity Bootcamp, which is…