【Leetcode】2017. Grid Game

题目地址:

https://leetcode.com/problems/grid-game/

给定一个 2 × n 2\times n 2×n的矩阵 A A A ∀ i , j , A [ i ] [ j ] ≥ 1 \forall i, j, A[i][j]\ge 1 i,j,A[i][j]1,甲从 ( 0 , 0 ) (0,0) (0,0)出发,每一步只能向右或者向下走一格,每次走到的位置都会将当前数字抹去(即变为 0 0 0),并且走到 ( 1 , n − 1 ) (1, n-1) (1,n1)为止。甲先走,然后乙以相同的规则再走。甲想让乙走的路径和尽可能小。问乙能走的最大的路径和是多少。

乙能得到的最大分数是: min ⁡ { max ⁡ i { ∑ A [ 0 ] [ i : n − 1 ] , ∑ A [ 1 ] [ 0 : i − 2 ] } } \min\{\max_i\{\sum A[0][i:n-1], \sum A[1][0:i-2]\}\} min{ imax{ A[0][i:n1],A[1][0:i2]}}枚举即可。代码如下:

public class Solution {
    
    
    public long gridGame(int[][] grid) {
    
    
        long sum1 = 0, sum2 = 0;
        for (int i = 1; i < grid[0].length; i++) {
    
    
            sum1 += grid[0][i];
        }
    
        long res = sum1;
        for (int i = 1; i < grid[0].length; i++) {
    
    
            sum1 -= grid[0][i];
            sum2 += grid[1][i - 1];
            
            res = Math.min(res, Math.max(sum1, sum2));
        }
        
        return res;
    }
}

时间复杂度 O ( n ) O(n) O(n),空间 O ( 1 ) O(1) O(1)

おすすめ

転載: blog.csdn.net/qq_46105170/article/details/120680104