Skip to main content

2017.js

/** ------------------------------------------------------------------------------
*
* 2017. Grid Game
* Topics: Matrix, Prefix Sum
* https://leetcode.com/problems/grid-game/description/?envType=daily-question&envId=2025-01-21
*
------------------------------------------------------------------------------ */
/**
* @param {number[][]} grid
* @return {number}
*/
var gridGame = function (grid) {
const n = grid[0].length

const prefixTop = Array.from({ length: n + 1 }).fill(0)
const prefixBottom = Array.from({ length: n + 1 }).fill(0)

for (let i = 0; i < n; i++) {
prefixTop[i + 1] = prefixTop[i] + grid[0][i]
prefixBottom[i + 1] = prefixBottom[i] + grid[1][i]
}

let result = Infinity

for (let i = 0; i < n; i++) {
const topRemain = prefixTop[n] - prefixTop[i + 1]
const bottomCollect = prefixBottom[i]
const secondRobotPoints = Math.max(topRemain, bottomCollect)
result = Math.min(result, secondRobotPoints)
}
return result
}

/**
* @param {number[][]} grid
* @return {number}
*/
var gridGame = function (grid) {
let t = grid[0].reduce((acc, curr) => (acc += curr), 0)
console.log("t", t)
let d = 0
let res = Number.MAX_SAFE_INTEGER
for (let i = 0; i < grid[0].length; i++) {
t = t - grid[0][i]
res = Math.min(res, Math.max(t, d))
d += grid[1][i]
}
return res
}

console.log(
gridGame([
[2, 5, 4],
[1, 5, 1],
]),
)