Re: [閒聊] 每日leetcode已回收
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
→
05/13 20:05,
1年前
, 1F
05/13 20:05, 1F
推
05/13 20:06,
1年前
, 2F
05/13 20:06, 2F
→
05/13 20:16,
1年前
, 3F
05/13 20:16, 3F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 211 之 1554 篇):