Re: [閒聊] 每日leetcode
總之就是一次可以選任意兩個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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.58.28 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1767625735.A.040.html
討論串 (同標題文章)
完整討論串 (本文為第 1561 之 1561 篇):