1. 题目

给定由若干 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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/flip-columns-for-maximum-number-of-equal-rows
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 一开始想是不是动态规划
  • 看答案是找最多出现的模式,如11011,00100,反转第3列后变成11111,00000,都是1或者0
  • 那把0开头的或者1开头的,选一种,全部翻转,用哈希表计数,找到最多出现的
class Solution { //C++
public:int maxEqualRowsAfterFlips(vector<vector<int>>& matrix) {unordered_map<string,int> m;string s(matrix[0].size(),' ');for(auto& mat : matrix){if(mat[0] == 0){for(int i = 0; i < mat.size(); ++i){mat[i] ^= 1;s[i] = mat[i] ? '1' : '0';}}else{for(int i = 0; i < mat.size(); ++i)s[i] = mat[i] ? '1' : '0';}m[s]++;}int maxCount = 0;for(auto it = m.begin(); it != m.end(); ++it)maxCount = max(maxCount, it->second);return maxCount;}
};

384 ms 44.5 MB

class Solution:# py3def maxEqualRowsAfterFlips(self, matrix: List[List[int]]) -> int:d = {}s = [' ']*(len(matrix[0]))for mat in matrix:if mat[0]==0:for i in range(len(mat)):mat[i] ^= 1s[i] = '1' if mat[i] else '0'else:for i in range(len(mat)):s[i] = '1' if mat[i] else '0'strs = ''.join(s)if strs in d:d[strs] += 1else:d[strs] = 1maxcount = 0for key in d:maxcount = max(maxcount, d[key])return maxcount

1900 ms 15.5 MB

我 python 不太熟,不太清楚什么操作更高效,如有可优化的地方,求大佬指点!感谢!

LeetCode 1072. 按列翻转得到最大值等行数(查找相同的模式,哈希计数)相关推荐

  1. leetcode 5077. 按列翻转得到最大值等行数(Flip Columns For Maximum Number of Equal Rows)

    目录 题目描述: 示例 1: 示例 2: 示例 3: 解法: 题目描述: 给定由若干 0 和 1 组成的矩阵 matrix,从中选出任意数量的列并翻转其上的 每个 单元格.翻转后,单元格的值从 0 变 ...

  2. MySQL 学习笔记(1)— 创建/连接/选择/显示数据库(表) 查询单列(多列/所有列)/查询返回特定的行数 各种排序(单列/多列/降序/组合排序) 过滤数据

    本文是对之前学习 MySQL 的一个总结,使用思维导图的方式将涉及到的知识点罗列出来,一方面作为自己对于知识点的归纳,另一方面也便于日后查询. 在该篇文章中将对 MySQL 的基本使用.检索基本数据. ...

  3. LeetCode(806)——写字符串需要的行数(JavaScript)

    我们要把给定的字符串 S 从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行.我们给定了一个数组 width ...

  4. 在一个SQL Server表中的多个列找出最大值

    在一个SQL Server表中一行的多个列找出最大值 有时候我们需要从多个相同的列里(这些列的数据类型相同)找出最大的那个值,并显示 这里给出一个例子 IF (OBJECT_ID('tempdb..# ...

  5. 数据结构第5章例题 若矩阵Am×n中存在某个元素aij满足:aij是第i行中的最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。试编写一个算法,找出A中的所有鞍点。

    [例5.1] 若矩阵Am×n中存在某个元素aij满足:aij是第i行中的最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点.试编写一个算法,找出A中的所有鞍点. 算法如下: void saddl ...

  6. server取出多个最小值 sql_sql语句,需要取出多个字段列中的最大值和最小值

    今天写 sql 语句,需要取出多个字段列中的最大值和最小值. 本来想到的做法比较麻烦,要分别取出 max(one),max(two),max(three) ,放到 pb 中 在编程处理. 后来找到个 ...

  7. 盘点使用Pandas解决问题:对比两列数据取最大值的5个方法

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 近寒食雨草萋萋,著麦苗风柳映堤. ...

  8. 【数据库】sqlite中的限制:数据库大小、表数、列数、行数、参数个数、连接数等

    目录 一.参考网址 二.详解 1.查看.设置sqlite限制命令.limit 2.SQLite中的限制汇总 1)字符串或BLOB的最大长度 2)最大列数 3)SQL语句的最大长度 4)联接中的最大表数 ...

  9. python输入正方形边长值、计算其面积_尝试修改列6.2编写命令行参数解析的程序,解析命令行参数所输入边长的值,计算并输出正方形的周长和面积。_学小易找答案...

    [简答题] [单选题]ZigBee 中每个协调点最多可连接______个节点,一个ZigBee网络最多可容纳______个节点.( ) [资料题]DWord-Ans.pdf 索引和目录.pdf 完成效 ...

最新文章

  1. 分享Kali Linux 2017年第30周镜像文件
  2. nginx模块学习六 add_header 跨域访问
  3. Elasticsearch kibana一些基本概念
  4. SAP Spartacus UnitDetailsComponent的路由跟踪
  5. 基于云平台的家居综合监测管理系统的设计与实现
  6. StringBuffer与StringBuilder
  7. ORACLE HANDBOOK系列之十一:分区(Partition)
  8. 软件著作权申报中60页标准代码文档的写作经验谈(1)
  9. c语言ide 字体大小,配置最小c语言IDE
  10. threejs 三面体_three.js几何体对象_三维建模_郭隆邦技术博客
  11. 网络研讨会|为什么在开发流程中应用静态代码分析工具?
  12. 小米平板4刷recovery教程_小米平板2中文Recovery刷机教程
  13. The vertically scrolling ScrollView should not contain another vertically scrolling widget (ListView
  14. win2008R2 AD域 网络驱动映射
  15. 牛腩——遇到的问题总结
  16. Linux 管理面板云帮手、APPNODE与宝塔哪个好
  17. 【Python 实战基础】Flask 蓝图 Blueprint 怎么用以及怎么集成 Bootstrap
  18. VR全景的拍摄制作上传
  19. 无线串口模块通信技术参数快速选型指南
  20. 天气预报实时显示系统设计

热门文章

  1. SQLAlchemy中filter_by()和filter()的用法不同
  2. Hbase读写数据的原理解析
  3. mysql关系模式怎么画_关系数据库与mysql
  4. ap模式和sta模式共存_AP+AC组网下的本地转发及集中转发
  5. 05_JS流程控制语句
  6. tableau 倒序都倒了_Tableau优秀作品拆解复刻01-是时候终结瘘管病了
  7. 第二季3:海思MPP模块与视频缓冲池
  8. Linux进程全解12——lIPC机制之管道,SystemV IPC介绍
  9. PHP json_encode后的数据有的大括号于中括号
  10. Leetcode分类