class Solution:
def gridGame(self, grid: List[List[int]]) -> int:
cols = len(grid[0])
res = float('inf')
top1 = 0
for i in range(cols):
top1 += grid[0][i]
bottom1 = 0
for j in range(i, cols):
bottom1 += grid[1][j]
top2 = robot2 = 0
for j in range(cols):
if j > i:
top2 += grid[0][j]
bottom2 = 0
for k in range(j, i):
bottom2 += grid[1][k]
robot2 = max(robot2, top2 + bottom2)
res = min(res, robot2)
return resclass Solution:
def gridGame(self, grid: List[List[int]]) -> int:
N = len(grid[0])
preRow1, preRow2 = grid[0].copy(), grid[1].copy()
for i in range(1, N):
preRow1[i] += preRow1[i - 1]
preRow2[i] += preRow2[i - 1]
res = float("inf")
for i in range(N):
top = preRow1[-1] - preRow1[i]
bottom = preRow2[i - 1] if i > 0 else 0
secondRobot = max(top, bottom)
res = min(res, secondRobot)
return resclass Solution:
def gridGame(self, grid: List[List[int]]) -> int:
res = float("inf")
topSum = sum(grid[0])
bottomSum = 0
for i in range(len(grid[0])):
topSum -= grid[0][i]
res = min(res, max(topSum, bottomSum))
bottomSum += grid[1][i]
return res