2
public long gridGame(int[][] grid) {3
int n = grid[0].length;4
long preRow1[] = new long[n];5
long preRow2[] = new long[n];7
preRow1[0] = grid[0][0];8
preRow2[0] = grid[1][0];10
for (int i = 1; i < n; i++) {11
preRow1[i] += (long) preRow1[i - 1] + (long) grid[0][i];12
preRow2[i] += (long) preRow2[i - 1] + (long) grid[1][i];15
long res = Long.MAX_VALUE;16
for (int i = 0; i < n; i++) {17
long top = preRow1[n - 1] - preRow1[i];18
long bottom = i == 0 ? 0 : preRow2[i - 1];19
long temp = Math.max(top, bottom);20
res = Math.min(res, temp);