总之就是一次可以选任意两个element同乘-1
如果"非正整数"刚好是偶数个的话 就直接全部abs相加就好
如果是奇数个的话 就还要看要把最后一个负转嫁到谁身上
那就是绝对值最小的那个上面
我这边就边WA边修 才修成这么丑 哀哀哀
第一个是忘记考虑0 0应该一起算 一开始只算到负数的count就错
第二个是忘记考虑到正负也可以对换
思绪还是不够直接清晰
def maxMatrixSum(self, matrix: List[List[int]]) -> int:
neg_cnt = 0
largest_neg = -100000
smallest_pos = 100000
m, n = len(matrix), len(matrix[0])
for i in range(m):
for j in range(n):
if matrix[i][j]<=0:
neg_cnt += 1
largest_neg = max(largest_neg, matrix[i][j])
else:
smallest_pos = min(smallest_pos, matrix[i][j])
if neg_cnt%2 == 0:
return sum([sum([abs(matrix[i][j]) for j in range(n)]) for i in
range(m)])
else:
if abs(largest_neg)<smallest_pos:
return sum([sum([abs(matrix[i][j]) for j in range(n)]) for i
in range(m)]) + 2*largest_neg
else:
return sum([sum([abs(matrix[i][j]) for j in range(n)]) for i
in range(m)]) - 2*smallest_pos