→ Furina: 大師 11/22 20:26
1072. Flip Columns For Maximum Number of Equal Rows
## 思路
如果翻轉特定幾個column後 有兩個row變成1111或0000
那兩個row的值完全相同/相反
e.g.
[1,0,0]
[0,1,1]
[1,0,0]
[1,0,0]
對每行的值 以col 0的值當作標準, 轉成mask
用HashTable紀錄mask次數, 取最大值
## Code
```python
class Solution:
def maxEqualRowsAfterFlips(self, matrix: List[List[int]]) -> int:
len_r, len_c = len(matrix), len(matrix[0])
counter = Counter()
for r in range(len_r):
mask = 0
for c in range(len_c):
mask = (mask << 1) | (matrix[r][c] == matrix[r][0])
counter[mask] += 1
return max(counter.values())
```
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 94.156.205.99 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1732278116.A.6C0.html
※ 編輯: dont (94.156.205.99 臺灣), 11/22/2024 20:23:17
※ 編輯: dont (94.156.205.99 臺灣), 11/22/2024 20:24:14