2089. Maximum Matrix Sum¶
Difficulty: Medium
LeetCode Problem View on GitHub
2089. Maximum Matrix Sum
Medium
You are given an n x n integer matrix. You can do the following operation any number of times:
- Choose any two adjacent elements of
matrixand multiply each of them by-1.
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:
n == matrix.length == matrix[i].length2 <= n <= 250-105 <= matrix[i][j] <= 105
Solution¶
class Solution {
public long maxMatrixSum(int[][] matrix) {
int n = matrix.length;
int m = matrix[0].length;
int count = 0, neg = Integer.MAX_VALUE;
long sum = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
sum += Math.abs(matrix[i][j]);
neg = Math.min(neg, Math.abs(matrix[i][j]));
if (matrix[i][j] < 0) count++;
}
}
if (count % 2 == 1) return sum - neg * 2;
return sum;
}
}
Complexity Analysis¶
- Time Complexity:
O(?) - Space Complexity:
O(?)
Approach¶
Detailed explanation of the approach will be added here