当前位置: 首页 > news >正文

电商网站建设 网站定制开发/推广图片制作

电商网站建设 网站定制开发,推广图片制作,macbook做网站绑定域名,torrent种子搜索引擎1072. 按列翻转得到最大值等行数(leetcode,哈希)-------------------c实现 题目表述 给定 m x n 矩阵 matrix 。 你可以从中选出任意数量的列并翻转其上的 每个 单元格。(即翻转后,单元格的值从 0 变成 1,或者从 1 …

1072. 按列翻转得到最大值等行数(leetcode,哈希)-------------------c++实现

题目表述

给定 m x n 矩阵 matrix 。

你可以从中选出任意数量的列并翻转其上的 每个 单元格。(即翻转后,单元格的值从 0 变成 1,或者从 1 变为 0 。)

返回 经过一些翻转后,行与行之间所有值都相等的最大行数 。

样例

示例 1:

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

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

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

条件

m == matrix.length
n == matrix[i].length
1 <= m, n <= 300
matrix[i][j] == 0 或 1

思路

思路一 (通过记录每行需要改变的数进行暴力):

通过把已知的m*n矩阵,通过记录每一行变为相同的值需要改变的数的列数,记录后,每两两行进行判断是否是相同的改变方法(这里可以通过判断每行记录的改变数的个数进行剪枝),获得最佳的改变方法。时间复杂度最坏可以达到O(mn2)但是实际因为剪枝判断应该是O(n2logm)。

思路二(哈希存储判断,leetcode答案思路):

通过unordered_map然后记录字符串出现的次数,字符串以0开头和以1开头的,如果全部位的异或都为1,那么说明是相似字符串,通过改变相同的位数就可以符合题目的要求。

注意点

ac代码

c++:

思路一
class Solution {
public:bool RowChangeIsSame(vector<vector<int>> &a,vector<vector<int>> &b){bool existSame[2]={1,1};if(a[0].size()!=b[0].size()&&a[0].size()!=b[1].size())return false;for(int i=0;i<2;i++)    //through the a[0] to judge{if(a[0].size()!=b[i].size()){existSame[i]=0;continue;}for(int j=0;j<a[0].size();j++)if(a[0][j]!=b[i][j]){existSame[i]=0;break;}}return existSame[0]||existSame[1];}int maxEqualRowsAfterFlips(vector<vector<int>>& matrix) {vector<vector<vector<int>>> needChange(matrix.size(),vector<vector<int>>(2,vector<int>(0)));int max=0,now;for(int i=0;i<matrix.size();i++)for(int j=0;j<matrix[0].size();j++){if(matrix[i][j]==0)needChange[i][0].push_back(j);elseneedChange[i][1].push_back(j);}for(int i=0;i<matrix.size();i++)   //traverse every main row{   now=0;for(int j=0;j<matrix.size();j++) //find main row's same change{if(RowChangeIsSame(needChange[i],needChange[j]))now++;}if(now>max)max=now;}return max;}
};

在这里插入图片描述

思路二

class Solution {
public:int maxEqualRowsAfterFlips(vector<vector<int>>& matrix) {unordered_map<string,int> remember;//    string flip=string(matrix[0].size(),'0');int result=0;for(int i=0;i<matrix.size();i++){string now;for(int j=0;j<matrix[0].size();j++){now+=matrix[i][j]^matrix[i][0];}//答案写法,实测会更快// string now = string(n,'0');
//   		for(int j=0;j<matrix[0].size();j++)
//        {
//         now[j]='0'+matrix[i][j]^matrix[i][0];
//        }remember[now]++;}for(auto &m:remember){result=(m.second>result)?m.second:result;} return result;}
};

在这里插入图片描述

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

http://www.jmfq.cn/news/5140765.html

相关文章:

  • 常德网站优化咨询电话/论坛平台
  • 做电影海报在哪个网站好/网络运营推广合作
  • 动漫设计与制作视频/网络优化的基本方法
  • 品牌建设费用包括哪些/巢湖seo推广
  • 如何做积分商城网站/免费网站安全检测
  • 自己做彩票网站简单吗/互联网营销渠道有哪些
  • 微信上怎么做网站链接/网页设计素材
  • 公司部门设置及职责划分/最专业的seo公司
  • 自己做的网站怎么改背景图/百度的首页
  • 福田哪家建设网站好/免费网站seo优化
  • 小说网站排行榜前十名/销售怎么做
  • 深圳营销型网站建设服务/网页模板免费下载网站
  • 专业网站建设公司首选/今日搜索排行榜
  • 金华安全网站建设怎么收费/网络广告营销的特点
  • wordpress数据名/seo实战指导
  • 网站模板 wordpress/找网站设计公司
  • 破解wordpress邀请码/seo优化外包顾问
  • 备案期间怎么做网站/百度链接提交工具
  • 做网站有什么用/推广平台app
  • 图片设计软件app/淘宝关键词怎么优化
  • 天津网站开发建设/四川seo哪里有
  • 杭州十大电商公司排名/seo网站的优化流程
  • 找人做微信网站/计算机基础培训机构
  • 网站开发人员保密/网页宣传
  • 网站定制公司哪家好/手机网站制作平台
  • 东莞网站建设行业翘楚/国内ip地址 免费
  • 河南专业网站建设公司/武汉建站优化厂家
  • 网站建设中可能出现的问题/湖人最新排名最新排名
  • wordpress 的应用/网站seo优化外包
  • 小说网站怎么做流量/郑州做网站推广哪家好