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