1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| // @Title: 翻转矩阵后的得分 (Score After Flipping Matrix)
// @Author: 15816537946@163.com
// @Date: 2020-12-07 09:03:18
// @Runtime: 0 ms
// @Memory: 2.2 MB
func matrixScore(A [][]int) int {
m, n := len(A), len(A[0])
// 考虑第一列的综合
ans := 1 << (n - 1) * m
// 考虑余下的列的累加
for j := 1; j < n; j++ {
ones := 0
for _, row := range A {
if row[0] == row[j] {
ones++ // 因为要考虑最初进行的行反转, 所以只要判断当前列跟第一列的元素是否相同
}
}
if ones < m-ones {
ones = m - ones
}
ans += 1 << (n - 1 - j) * ones
}
return ans
}
|