/**
* @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
RandomResizedCrop in PyTorch (3)
Buy Me a Coffee☕ *Memos: My post explains RandomResizedCrop() about size argument. My post explains RandomResizedCrop() about scale…
User permission checking in Go
This article was originally published on my personal blog. The problem While working on my go-pf module, I…
SaaS GPT
Software-as-a-Service Generative Pretrained Transformers (Source: Pixabay) Although pretrained models offer out-of-the-box functionality for many NLP (Natural Language Processing)…