翻转列以获取Python中最大相等行数
假设我们有一个由0和1组成的矩阵,我们可以选择矩阵中任意数量的列,然后翻转该列中的每个单元格。转换单元会将该单元的值从0更改为1或从1更改为0。我们必须找到经过一定次数翻转后所有值相等的最大行数。所以如果矩阵像-
输出将为2。这是因为在转换前两列中的值之后,后两行具有相等的值。
为了解决这个问题,我们将遵循以下步骤-
x:=矩阵,m:=行数,n:=列数,r:=0
对于x中的每个元素
如果j=i或j=a,则将c加1
c:=0
a:=i中所有元素l的列表,插入lXORi
对于x中的每个元素j
r:=c和r的最大值
返回r
让我们看下面的实现以更好地理解-
示例
class Solution(object):
def maxEqualRowsAfterFlips(self, matrix):
x = matrix
m = len(matrix)
n = len(matrix[0] )
r =0
for i in x:
c=0
a=[l ^ 1 for l in i]
for j in x:
if j== i or j ==a:
c+=1
r=max(c, r)
return r
ob = Solution()print(ob.maxEqualRowsAfterFlips([[0,0,0],[0,0,1],[1,1,0]]))输入值
[[0,0,0],[0,0,1],[1,1,0]]
输出结果
2
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短