Skip to content

Commit 3c33190

Browse files
authored
Update 1219-path-with-maximum-gold.js
1 parent a9be3c1 commit 3c33190

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

1219-path-with-maximum-gold.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,46 @@ const getMaximumGold = function(grid) {
3838
}
3939

4040
};
41+
42+
// another
43+
44+
/**
45+
* @param {number[][]} grid
46+
* @return {number}
47+
*/
48+
var getMaximumGold = function (grid) {
49+
const m = grid.length
50+
const n = grid[0].length
51+
let max = 0
52+
53+
for (let i = 0; i < m; i++) {
54+
for (let j = 0; j < n; j++) {
55+
if (grid[i][j] != 0) {
56+
const sum = backtrack(grid, i, j, m, n)
57+
max = Math.max(sum, max)
58+
}
59+
}
60+
}
61+
62+
return max
63+
}
64+
65+
function backtrack(grid, row, col, m, n) {
66+
if (outOfBound(row, col, m, n) || grid[row][col] === 0) return 0
67+
68+
let sum = grid[row][col]
69+
grid[row][col] = 0 // mark as being visited already
70+
71+
const top = backtrack(grid, row - 1, col, m, n)
72+
const right = backtrack(grid, row, col + 1, m, n)
73+
const bot = backtrack(grid, row + 1, col, m, n)
74+
const left = backtrack(grid, row, col - 1, m, n)
75+
76+
grid[row][col] = sum // backtrack to the original form
77+
78+
return sum + Math.max(top, right, bot, left)
79+
}
80+
81+
function outOfBound(row, col, m, n) {
82+
return row < 0 || col < 0 || row >= m || col >= n
83+
}

0 commit comments

Comments
 (0)