2089 Maximum Matrix Sum
2089 Maximum Matrix Sum
Maximum Matrix Sum 
You are given an n x n integer matrix. You can do the following operation any number of times:
1
Choose any two **adjacent** elements of matrix and **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:
1
2
3
4
5
6
7
**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:
1
2
3
4
5
6
**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:
1
2
3
n == matrix.length == matrix[i].length
2 <= n <= 250
-105 <= matrix[i][j] <= 105
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution:
def maxMatrixSum(self, matrix: List[List[int]]) -> int:
total_sum = 0
min_abs_val = float("inf")
negative_count = 0
for row in matrix:
for val in row:
total_sum += abs(val)
if val < 0:
negative_count += 1
min_abs_val = min(min_abs_val, abs(val))
# Adjust if the count of negative numbers is odd
if negative_count % 2 != 0:
total_sum -= 2 * min_abs_val
return total_sum
This post is licensed under CC BY 4.0 by the author.

