作者JIWP (神楽めあ的錢包)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Fri Nov 22 23:41:18 2024
1072. Flip Columns For Maximum Number of Equal Rows
有m*n的binary matrix
可以選擇任一行,將那一行的元素翻轉(1->0、0->1)
這個操作可以做任意次
請問經過任意次操作後
可以得到最多幾個列(列裡面的元素全為1或0)
思路:
當兩個列的每個元素完全相同或完全相反
就可以透過flip得到全為1/0的列
所以去紀錄完全相同/相反的列有幾個
接著去找最多的數量就是答案
golang code :
func maxEqualRowsAfterFlips(matrix [][]int) int {
rec := make(map[string]int)
for _, val := range matrix {
tmp := strings.Builder{}
if val[0] == 1 {
for _, char := range val {
tmp.WriteByte(byte(char))
}
} else {
for _, char := range val {
char ^= 1
tmp.WriteByte(byte(char))
}
}
rec[tmp.String()]++
}
ans := 0
for _, val := range rec {
ans = max(ans, val)
}
return ans
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.214.73 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1732290081.A.546.html