DEV Community

Karleb
Karleb

Posted on

1219. Path with Maximum Gold

https://leetcode.com/problems/path-with-maximum-gold/description/?envType=daily-question&envId=2024-05-14


/**
 * @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
};

Enter fullscreen mode Exit fullscreen mode

Top comments (0)