lc-go/solutions/19/q1975/solution.go
2026-01-07 18:04:39 +09:00

40 lines
515 B
Go

package q1975
import "math"
func abs(i int) int {
if i < 0 {
return -i
}
return i
}
func maxMatrixSum(matrix [][]int) int64 {
var sum int64
min_ := math.MaxInt
hasZero := false
nNeg := 0
for i := range matrix {
for _, num := range matrix[i] {
if num < 0 {
nNeg++
}
if num == 0 {
hasZero = true
}
num = abs(num)
sum += int64(num)
if num < min_ {
min_ = num
}
}
}
if hasZero || nNeg%2 == 0 {
return sum
}
return sum - 2*int64(min_)
}
var _ = maxMatrixSum