zoukankan      html  css  js  c++  java
  • LeetCode 1072. 按列翻转得到最大值等行数

    给定由若干 0 和 1 组成的矩阵 matrix,从中选出任意数量的列并翻转其上的 每个 单元格。翻转后,单元格的值从 0 变成 1,或者从 1 变为 0 。
    返回经过一些翻转后,行上所有值都相等的最大行数。

    示例 1:
    输入:[[0,1],[1,1]]
    输出:1
    解释:不进行翻转,有 1 行所有值都相等。

    示例 2:
    输入:[[0,1],[1,0]]
    输出:2
    解释:翻转第一列的值之后,这两行都由相等的值组成。

    示例 3:
    输入:[[0,0,0],[0,0,1],[1,1,0]]
    输出:2
    解释:翻转前两列的值之后,后两行由相等的值组成。

    提示:
    1 <= matrix.length <= 300
    1 <= matrix[i].length <= 300
    所有 matrix[i].length 都相等
    matrix[i][j] 为 0 或 1

    class Solution:
        def maxEqualRowsAfterFlips(self, matrix: List[List[int]]) -> int:
            counter_dic = dict()
            maxCount = 0
            for row in matrix:
                if row[0] == 1:
                    tup_row = tuple(1-x for x in row)
                else:
                    tup_row = tuple(row)
                # 把tuple_row存在字典里
                if tup_row in counter_dic:
                    counter_dic[tup_row] += 1
                else:
                    counter_dic[tup_row] = 1
            # 遍历找到最大值
            for count in counter_dic.values():
                maxCount = max(maxCount, count)
            return maxCount
    
  • 相关阅读:
    [置顶] 输入子系统
    多线程知识点总结
    mybatis知识点总结
    redis知识点及常见面试题
    spring知识点(面试题)
    【linux】vim常用命令
    Linux常用命令大全
    Java 位运算(移位、位与、或、异或、非)
    图论之堆优化的Prim
    BZOJ3261 最大异或和 解题报告(可持久化Trie树)
  • 原文地址:https://www.cnblogs.com/sandy-t/p/13289339.html
Copyright © 2011-2022 走看看