1975. Maximum Matrix Sum
/**
* Problem: LeetCode 1975 - Maximum Matrix Sum
* Difficulty: Medium
* Language: Java
* Author: CodeByTushu
*/
class Solution {
public long maxMatrixSum(int[][] matrix) {
long totalSum = 0;
int minAbs = Integer.MAX_VALUE;
int negCount = 0;
for (int[] row : matrix) {
for (int val : row) {
if (val < 0) {
negCount++;
}
int absVal = Math.abs(val);
totalSum += absVal;
if (absVal < minAbs) {
minAbs = absVal;
}
}
}
if (negCount % 2 == 0) {
return totalSum;
}
return totalSum - 2L * minAbs;
}
}
"""
Problem: LeetCode 1975 - Maximum Matrix Sum
Difficulty: Medium
Language: Python
Author: CodeByTushu
"""
from typing import List
class Solution:
def maxMatrixSum(self, matrix: List[List[int]]) -> int:
total_sum = 0
min_abs = float('inf')
neg_count = 0
for row in matrix:
for val in row:
if val < 0:
neg_count += 1
abs_val = abs(val)
total_sum += abs_val
if abs_val < min_abs:
min_abs = abs_val
if neg_count % 2 == 0:
return total_sum
return total_sum - 2 * min_abs
/**
* Problem: LeetCode 1975 - Maximum Matrix Sum
* Difficulty: Medium
* Language: C++
* Author: CodeByTushu
*/
#include <vector>
#include <cmath>
#include <algorithm>
#include <climits>
using namespace std;
class Solution {
public:
long long maxMatrixSum(vector<vector<int>>& matrix) {
long long totalSum = 0;
int minAbs = INT_MAX;
int negCount = 0;
for (const auto& row : matrix) {
for (int val : row) {
if (val < 0) {
negCount++;
}
int absVal = abs(val);
totalSum += absVal;
minAbs = min(minAbs, absVal);
}
}
if (negCount % 2 == 0) {
return totalSum;
}
return totalSum - 2LL * minAbs;
}
};
/**
* Problem: LeetCode 1975 - Maximum Matrix Sum
* Difficulty: Medium
* Language: JavaScript
* Author: CodeByTushu
*/
/**
* @param {number[][]} matrix
* @return {number}
*/
var maxMatrixSum = function(matrix) {
let totalSum = 0;
let minAbs = Infinity;
let negCount = 0;
for (const row of matrix) {
for (const val of row) {
if (val < 0) {
negCount++;
}
const absVal = Math.abs(val);
totalSum += absVal;
if (absVal < minAbs) {
minAbs = absVal;
}
}
}
if (negCount % 2 === 0) {
return totalSum;
}
return totalSum - 2 * minAbs;
};