Re: [闲聊] 每日leetcode

楼主: JIWP (JIWP)   2024-05-13 20:03:56
861. Score After Flipping Matrix
有一个m*n的matrix
每一列都代表一个二进制数
可以把任意行、列的元素反转(0->1、1->0)
请问在进行反转后,这个matrix总和最大为多少?
思路:
首先先把每个第一行为0的列反转
接着再去计算每一行0、1的数量
如果0的数量>1的数量就翻转
接着就二进制转十进制就可以求出答案了
golang code :
func matrixScore(grid [][]int) int {
n := len(grid)
m := len(grid[0])
for i := 0; i < n; i++ {
if grid[i][0] == 0 {
for j := 0; j < m; j++ {
grid[i][j] ^= 1
}
}
}
sum := 0
for j := 0; j < m; j++ {
cnt := 0
for i := 0; i < n; i++ {
cnt += grid[i][j]
}
if cnt > (n-cnt) {
sum += cnt * (1 << (m - 1 - j))
} else {
sum += (n - cnt) * (1 << (m - 1 - j))
}
}
return sum
}
作者: aioiwer318 (哀欧)   2024-05-13 20:05:00
别卷了
作者: SecondRun (雨夜琴声)   2024-05-13 20:06:00
大师
作者: wu10200512 (廷廷)   2024-05-13 20:16:00
别卷了

Links booklink

Contact Us: admin [ a t ] ucptt.com