作者JIWP (神楽めあ的錢包)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Mon May 13 20:03:56 2024
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
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.82.19.201 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1715601838.A.074.html
→ aioiwer318: 別卷了 05/13 20:05
推 SecondRun: 大師 05/13 20:06
→ wu10200512: 別卷了 05/13 20:16