作者dont (dont)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Sun Nov 24 11:19:10 2024
1975. Maximum Matrix Sum
## 思路
相鄰兩個值*-1 可以做無限次
所以matrix轉換完最多只會有1個負數
檢查負數的個數 並記錄最小絕對值
如果有偶數個負數, matrix sum會是所有絕對值的和
如果有奇數個負數, matrix sum要再減掉最小絕對值*2
## Code
```python
class Solution:
def maxMatrixSum(self, matrix: List[List[int]]) -> int:
len_r, len_c = len(matrix), len(matrix[0])
res = 0
curr_min = float('inf')
odd_neg = 0
for r in range(len_r):
for c in range(len_c):
abs_num = abs(matrix[r][c])
res += abs_num
curr_min = min(curr_min, abs_num)
odd_neg ^= (matrix[r][c] < 0)
if odd_neg:
res -= curr_min * 2
return res
```
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 94.156.205.64 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Marginalman/M.1732418352.A.1E5.html