呼和浩特 网站建设/网站如何进行网络推广

呼和浩特 网站建设,网站如何进行网络推广,大兴企业官网网站建设咨询,北京新机场建设指挥部网站1. 题目 给你一个 m x n 的二进制矩阵 mat。 每一步,你可以选择一个单元格并将它反转(反转表示 0 变 1 ,1 变 0 )。如果存在和它相邻的单元格,那么这些相邻的单元格也会被反转。(注:相邻的两个…

1. 题目

给你一个 m x n 的二进制矩阵 mat。

每一步,你可以选择一个单元格并将它反转(反转表示 0 变 1 ,1 变 0 )。如果存在和它相邻的单元格,那么这些相邻的单元格也会被反转。(注:相邻的两个单元格共享同一条边。)

请你返回将矩阵 mat 转化为全零矩阵最少反转次数,如果无法转化为全零矩阵,请返回 -1 。

二进制矩阵的每一个格子要么是 0 要么是 1 。

全零矩阵是所有格子都为 0 的矩阵。

在这里插入图片描述

示例 1:
输入:mat = [[0,0],[0,1]]
输出:3
解释:一个可能的解是反转 (1, 0),然后 (0, 1) ,最后是 (1, 1) 。示例 2:
输入:mat = [[0]]
输出:0
解释:给出的矩阵是全零矩阵,所以你不需要改变它。示例 3:
输入:mat = [[1,1,1],[1,0,1],[0,0,0]]
输出:6示例 4:
输入:mat = [[1,0,0],[1,0,0]]
输出:-1
解释:该矩阵无法转变成全零矩阵提示:
m == mat.length
n == mat[0].length
1 <= m <= 3
1 <= n <= 3
mat[i][j]01

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-number-of-flips-to-convert-binary-matrix-to-zero-matrix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. BFS解题

  • 矩阵每个格子反转操作后都可以转换成数字,检查它是否等于0(状态)
  • 先将初始状态push进队列,visited访问记录该状态(编码成数字)
  • 然后依次更改矩阵的每个位置,如果更改后的状态没出现过,push进队列
  • 遇见状态0的时候,停止BFS,返回BFS的层数,即最少反转次数
class Solution {vector<vector<int>> dir ={{1,0},{0,1},{0,-1},{-1,0},{0,0}};//反转操作位置int m, n;
public:int minFlips(vector<vector<int>>& mat) {m = mat.size(), n = mat[0].size();int num = matToNum(mat), step = 0, size, i, j;if(num == 0)return step;unordered_set<int> visited;//访问过了的状态queue<int> q;visited.insert(num);q.push(num);while(!q.empty()){++step;//bfs步数size = q.size();while(size--){numToMat(q.front(),mat);//将数字解码成矩阵matq.pop();for(i = 0; i < m; i++)//mat的每个位置都可以操作{for(j = 0; j < n; j++){   //每个位置进行反转操作flip(mat,i,j);num = matToNum(mat);//将矩阵状态编码成numif(num == 0)return step;if(!visited.count(num))//这种状态没有访问过{visited.insert(num);//访问标记q.push(num);//加入队列}flip(mat,i,j);//恢复现场,进行下个位置反转}}}}return -1;}int matToNum(vector<vector<int>>& M){   //矩阵编码成数字int num = 0, i, j;for(i = 0; i < m; i++)for(j = 0; j < n; j++)num = num*2+M[i][j];return num;}void numToMat(int num, vector<vector<int>>& M){   //数字解码成矩阵int bit, i, j;for(i = m-1; i >= 0; i--)for(j = n-1; j >= 0; j--){M[i][j] = (num&1);//取最低位num >>= 1;//数字右移1位}}void flip(vector<vector<int>>& M, int i, int j){   //反转i,j位置,及其周围4个位置int x, y, k;for(k = 0; k < 5; k++){x = i+dir[k][0];y = j+dir[k][1];if(x>=0 && x<m && y>=0 && y<n)M[x][y] = 1-M[x][y];}}
};

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477453.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Netflix Zuul与Nginx的性能对比

这是一篇翻译&#xff0c;关于大家经常质疑的一个问题&#xff1a;API网关Zuul的性能。原文&#xff1a;NETFLIX ZUUL VS NGINX PERFORMANCE作者&#xff1a;STANISLAV MIKLIK 如今你可以听到很多关于“微服务”的信息。Spring Boot是一个用来构建单个微服务应用的理想选择&…

LeetCode 773. 滑动谜题(BFS 地图状态转换的最短距离)

1. 题目 在一个 2 x 3 的板上&#xff08;board&#xff09;有 5 块砖瓦&#xff0c;用数字 1~5 来表示, 以及一块空缺用 0 来表示. 一次移动定义为选择 0 与一个相邻的数字&#xff08;上下左右&#xff09;进行交换. 最终当板 board 的结果是 [[1,2,3],[4,5,0]] 谜板被解开…

Spring Cloud实战小贴士:随机端口

太久没有更新&#xff0c;一时不知道该从哪儿开始&#xff0c;索性就从一个小技巧开始吧。 在之前的《Spring Cloud构建微服务架构》系列博文中&#xff0c;我们经常会需要启动多个实例的情况来测试注册中心、配置中心等基础设施的高可用&#xff0c;也会用来测试客户端负载均衡…

图谱实战 | 基于金融场景的事理图谱构建与应用

分享嘉宾&#xff1a;肖楠 京东科技 算法专家编辑整理&#xff1a;付村 云融创新出品平台&#xff1a;DataFunTalk导读&#xff1a;今天分享京东科技近期在事理图谱构建和应用方面的研究成果&#xff0c;主要分为以下五个部分&#xff1a;京东科技图谱简介金融事理图谱构建因果…

综述 | 基于深度学习的目标检测算法

计算机视觉是人工智能的关键领域之一&#xff0c;是一门研究如何使机器“看”的科学。图像目标检测又是计算机视觉的关键任务&#xff0c;主要对图像或视频中的物体进行识别和定位&#xff0c;是AI后续应用的基础。因此&#xff0c;检测性能的好坏直接影响到后续目标 追踪、动作…

LeetCode 1337. 方阵中战斗力最弱的 K 行(优先队列)

1. 题目 给你一个大小为 m * n 的方阵 mat&#xff0c;方阵由若干军人和平民组成&#xff0c;分别用 0 和 1 表示。 请你返回方阵中战斗力最弱的 k 行的索引&#xff0c;按从最弱到最强排序。 如果第 i 行的军人数量少于第 j 行&#xff0c;或者两行军人数量相同但 i 小于 j…

Spring Cloud实战小贴士:版本依赖关系

去年在博客上连载了《Spring Cloud构建微服务架构》的系列博文&#xff0c;虽然这部分内容得到了不少关注者们的支持&#xff0c;但是不得不说这些内容只是适用于Spring Cloud入门阶段对各个组件的初步认识。所以&#xff0c;今年除了将会继续更新《Spring Cloud构建微服务架构…

关于神经网络,一个学术界搞错了很多年的问题

文 | 五楼知乎说一个近年来神经网络方面澄清的一个误解。BP算法自八十年代发明以来&#xff0c;一直是神经网络优化的最基本的方法。神经网络普遍都是很难优化的&#xff0c;尤其是当中间隐含层神经元的个数较多或者隐含层层数较多的时候。长期以来&#xff0c;人们普遍认为&am…

Consul注销实例时候的问题

当我们在Spring Cloud应用中使用Consul来实现服务治理时&#xff0c;由于Consul不会自动将不可用的服务实例注销掉&#xff08;deregister&#xff09;&#xff0c;这使得在实际使用过程中&#xff0c;可能因为一些操作失误、环境变更等原因让Consul中存在一些无效实例信息&…

刷榜思路少?顶级中文NLP比赛解题方法直播来了!

如何利用稠密向量表示学习方法提升模型在大规模中文段落数据中的检索能力&#xff1f;如何利用外部知识信息减少模型在智能音箱、语音助手等产品中因知识不足导致的“智商”掉线&#xff1f;深度学习在众多NLP任务取得惊艳表现&#xff0c;但如何缓解其黑盒属性造成的应用落地「…

LeetCode 1338. 数组大小减半

1. 题目 给你一个整数数组 arr。你可以从中选出一个整数集合&#xff0c;并删除这些整数在数组中的每次出现。 返回 至少 能删除数组中的一半整数的整数集合的最小大小。 示例 1&#xff1a; 输入&#xff1a;arr [3,3,3,3,5,5,5,2,2,7] 输出&#xff1a;2 解释&#xff1a…

技术动态 | 知识图谱的自监督学习与逻辑推理

分享嘉宾&#xff1a;胡子牛 UCLA PHD编辑整理&#xff1a;wei ai-fir出品平台&#xff1a;DataFunTalk导读&#xff1a;知识图谱是一种多关系的图结构&#xff0c;每个节点表示一个实体&#xff0c;每个边表示连接的两个节点之间的关系&#xff0c;可以将图谱中建模的节点和边…

为Spring Cloud Ribbon配置请求重试(Camden.SR2+)

当我们使用Spring Cloud Ribbon实现客户端负载均衡的时候&#xff0c;通常都会利用LoadBalanced来让RestTemplate具备客户端负载功能&#xff0c;从而实现面向服务名的接口访问&#xff08;原理可见《Spring Cloud源码分析&#xff08;二&#xff09;Ribbon》一文&#xff0c;如…

聊聊谷歌Pathways带来的想象力

声明&#xff1a;本文原创首发于公众号夕小瑶的卖萌屋&#xff0c;作者Severus--->【我是传送门】今年清明节&#xff0c;Google 搞了一点小动作&#xff0c;在 arxiv 上放出了自己的新工作&#xff0c;PaLM[1] &#xff08;PaLM: Scaling Language Modeling with Pathways&…

LeetCode 1339. 分裂二叉树的最大乘积(DP)

1. 题目 给你一棵二叉树&#xff0c;它的根为 root 。请你删除 1 条边&#xff0c;使二叉树分裂成两棵子树&#xff0c;且它们子树和的乘积尽可能大。 由于答案可能会很大&#xff0c;请你将结果对 10^9 7 取模后再返回。 示例 1&#xff1a; 输入&#xff1a;root [1,2…

大规模模型训练tricks集锦

文 | Connolly知乎大规模模型训练其实就是在和计算、存储和通信玩的过程&#xff0c;所以我列一下跟这些相关的文章。1. 大规模模型并行策略先来介绍一下几种经典的并行范式&#xff0c;以及他们对应的经典文章1.1 数据并行(Data parallelism)不同设备执行相同模型&#xff0c;…

Spring Cloud源码分析(二)Ribbon

断断续续看Ribbon的源码差不多也有7-8天了&#xff0c;总算告一段落。本文记录了这些天对源码的阅读过程与一些分析理解&#xff0c;如有不对还请指出。 友情提示&#xff1a;本文较长&#xff0c;请选择一个较为舒适的姿势来阅读 在之前介绍使用Ribbon进行服务消费的时候&…

LeetCode 1340. 跳跃游戏 V(DP)

1. 题目 给你一个整数数组 arr 和一个整数 d 。每一步你可以从下标 i 跳到&#xff1a; i x &#xff0c;其中 i x < arr.length 且 0 < x < d 。i - x &#xff0c;其中 i - x > 0 且 0 < x < d 。 除此以外&#xff0c;你从下标 i 跳到下标 j 需要满足…

论文浅尝 | TKGR with Low-rank and Model-agnostic Representations

笔记整理&#xff1a;李行&#xff0c;天津大学硕士链接&#xff1a;https://arxiv.org/pdf/2204.04783v1.pdf动机现有MKGC方法中的知识转移效率低下&#xff0c;因为它们分别对每个KG进行编码并通过强制对齐的实体共享相同的嵌入来转移知识。亮点本文的亮点主要包括&#xff1…

ICLR’22 最佳脑洞奖提名:《GPT 如何进行布朗运动?》

文 | 付瑶编 | 小轶今天给大家介绍一篇斯坦福大学的 ICLR22 论文。该文在 OpenReview 中获得了8/8/8/8的高分。在写这篇推送之前&#xff0c;小编身边有多位朋友都私下向我推荐过这篇文章。虽然这几位朋友所研究的任务并不相同&#xff0c;却都认为这篇文章“极具启发性&#x…