看板 Marginalman
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