leetcode

Leetcode Solutions (0x6A73)
git clone https://git.pngu.org/leetcode
Log | Files | Refs | Submodules | README

commit 34565d8da25066822e62482b7baf8245bf9ce8fa
parent d64836d1bff335bf583b5a3271814586898f3fc4
Author: Jack Sangdahl <jack@pngu.org>
Date:   Sun,  4 Jan 2026 21:10:29 -0700

1975. maximum matrix sum

Diffstat:
Mmaximum_matrix_sum.c | 20++++++++++----------
Mmaximum_matrix_sum.py | 18++++++++++--------
2 files changed, 20 insertions(+), 18 deletions(-)

diff --git a/maximum_matrix_sum.c b/maximum_matrix_sum.c @@ -11,19 +11,19 @@ */ long long maxMatrixSum(int **matrix, int matrixSize, int *matrixColSize) { - long long sum = 0; - int neg_cnt = 0, min = INT_MAX; + long long total = 0; + int min_abs = INT_MAX, neg_cnt = 0; for (int i = 0; i < matrixSize; i++) - for (int j = 0; j < matrixSize; j++) { - if (matrix[i][j] < 0) + for (int j = 0; j < matrixColSize[i]; j++) { + int curr = matrix[i][j]; + total += abs(curr); + if (curr < 0) neg_cnt++; - if (abs(matrix[i][j]) < min) - min = abs(matrix[i][j]); - sum += abs(matrix[i][j]); + min_abs = fmin(min_abs, abs(curr)); } - if (!(neg_cnt % 2)) - return sum; - return sum - (2 * min); + if (neg_cnt % 2) + total -= 2 * min_abs; + return total; } int main() { diff --git a/maximum_matrix_sum.py b/maximum_matrix_sum.py @@ -16,14 +16,16 @@ class Solution(object): :type matrix: List[List[int]] :rtype: int """ - ans, mult, val = 0, 0, float("inf") - for i in range(len(matrix)): - for j in range(len(matrix)): - ans += abs(matrix[i][j]) - val = min(val, abs(matrix[i][j])) - if matrix[i][j] < 0: - mult ^= 1 - return ans - 2 * mult * val + min_abs, neg_cnt, total = float("inf"), 0, 0 + for i in matrix: + for j in i: + total += abs(j) + if j < 0: + neg_cnt += 1 + min_abs = min(min_abs, abs(j)) + if neg_cnt % 2 != 0: + total -= 2 * min_abs + return total if __name__ == "__main__":