/**
* @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
Deep Learning Models for Accurate Stock Market Trend Forecasting: A Comprehensive Evaluation
This is a Plain English Papers summary of a research paper called Deep Learning Models for Accurate Stock…
HackerRank SQL preparation; Revising the Select Query II(MySQL)
Problem Statement: Query the NAME field for American cities in the CITY table with populations larger than 120,000.…
Implementing DataLoader and Understanding Its Advantages Over Lookup
If you’ve been working with databases, especially in a GraphQL environment, you might have encountered the “N+1 problem.”…