Skip to content

Commit f18900c

Browse files
行首为1,;列中1的数量多
1 parent 93505bc commit f18900c

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
'''
2+
Descripttion: 861. 翻转矩阵后的得分
3+
version: 1
4+
Author: Jason
5+
Date: 2020-12-08 09:43:16
6+
LastEditors: Jason
7+
LastEditTime: 2020-12-08 10:15:19
8+
'''
9+
10+
11+
from typing import List
12+
13+
14+
class Solution:
15+
def matrixScore(self, A: List[List[int]]) -> int:
16+
'''
17+
func: 移动总共分为两步,首先观察一行,若以零开头,则移动完肯定会变大;之后观察每一列,若零比一多,则移动完会变大。
18+
param {*}
19+
return {*}
20+
'''
21+
# 检查行
22+
for row in range(len(A)):
23+
# 如果每一行的第一列为0,则对整行进行反转
24+
if A[row][0] == 0:
25+
for column in range(len(A[row])):
26+
A[row][column] = 0 if A[row][column] else 1
27+
28+
# 检查列-如果某一列存在的0比1多,则进行反转
29+
for column in range(len(A[0])):
30+
sum_column = sum([row[column] for row in A])
31+
if sum_column <= (len(A) // 2):
32+
for row in range(len(A)):
33+
A[row][column] = 0 if A[row][column] else 1
34+
35+
# 计算得分
36+
res = 0
37+
for row in A:
38+
row = [str(num) for num in row]
39+
res += int("".join(row), 2)
40+
return res
41+
42+
43+
s = Solution()
44+
li = [[0, 0, 1, 1], [1, 0, 1, 0], [1, 1, 0, 0]]
45+
print(s.matrixScore(li))

0 commit comments

Comments
 (0)