← All problems

1975. Maximum Matrix Sum

MediumOpen on LeetCodeProblem statement

Problem Statement

1975. Maximum Matrix Sum

Medium


You are given an n x n integer matrix. You can do the following operation any number of times:

Two elements are considered adjacent if and only if they share a border.

Your goal is to maximize the summation of the matrix's elements. Return the maximum sum of the matrix's elements using the operation mentioned above.

 

Example 1:

Input: matrix = [[1,-1],[-1,1]]
Output: 4
Explanation: We can follow the following steps to reach sum equals 4:
- Multiply the 2 elements in the first row by -1.
- Multiply the 2 elements in the first column by -1.

Example 2:

Input: matrix = [[1,2,3],[-1,-2,-3],[1,2,3]]
Output: 16
Explanation: We can follow the following step to reach sum equals 16:
- Multiply the 2 last elements in the second row by -1.

 

Constraints:

Java

Source file
class Solution {
    public long maxMatrixSum(int[][] matrix) {
        int m = matrix.length, n = matrix[0].length, count = 0;
        long sum = 0, modMin = 100001;
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                int val = matrix[i][j];
                if (val < 0) {
                    count++;
                    val = -val;
                }
                sum += val;
                modMin = Math.min(modMin, val);
            }
        }
        return count % 2 == 0 ? sum : sum - 2 * modMin;
    }
}