1886. 判断矩阵经轮转后是否一致

1886. 判断矩阵经轮转后是否一致

给你两个大小为 n x n 的二进制矩阵 mat 和 target 。现 以 90 度顺时针轮转 矩阵 mat 中的元素 若干次 ,如果能够使 mat 与 target 一致,返回 true ;否则,返回 false 。

示例 1:

图片.png

输入:mat = [[0,1],[1,0]], target = [[1,0],[0,1]]
输出:true
解释:顺时针轮转 90 度一次可以使 mat 和 target 一致。
示例 2:

图片.png

输入:mat = [[0,1],[1,1]], target = [[1,0],[0,1]]
输出:false
解释:无法通过轮转矩阵中的元素使 equal 与 target 一致。
示例 3:

图片.png

输入:mat = [[0,0,0],[0,1,0],[1,1,1]], target = [[1,1,1],[0,1,0],[0,0,0]]
输出:true
解释:顺时针轮转 90 度两次可以使 mat 和 target 一致。

提示:

  • n == mat.length == target.length
  • n == mat[i].length == target[i].length
  • 1 <= n <= 10
  • mat[i][j] 和 target[i][j] 不是 0 就是 1

解题思路

因为对于mat矩阵,我们最多只能以 90 度顺时针轮转 矩阵 mat 中的元素3次,因为第四次就会变为mat的初始状态,因此我们只需要模拟mat进行3次 90 度顺时针轮转,并且在每次轮转以后,判断一次mat矩阵和target矩阵是否相同,如果相同,就不需要进行后面的轮转了。

注意:因为题目说的是轮转若干次,所以不能忽略不轮转的情况,我们需要判断初始状态的mat和target是否相同。

代码

class Solution {
public:bool findRotation(vector<vector<int>> &mat, vector<vector<int>> &target) {int n = mat.size();vector<vector<int>> t(n, vector<int>(n));if (is_same(target,mat))return true;for (int i = 0; i < 3; ++i) {for (int i = 0; i < n; ++i) {for (int j = 0; j < n; ++j) {t[j][n - 1 - i] = mat[i][j];}}if (is_same(target,t))return true;mat=t;}return false;}bool is_same(vector<vector<int>> &mat, vector<vector<int>> &target) {int n = mat.size();for (int i = 0; i < n; ++i) {for (int j = 0; j < n; ++j) {if (mat[i][j] != target[i][j])return false;}}return true;}};

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

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

相关文章

samba登陆密码不正确

win7访问Linux Samba的共享目录提示“登录失败&#xff1a;用户名或密码错误”解决方法 解决办法&#xff1a;修改本地安全策略 通过Samba服务可以实现UNIX/Linux主机与Windows主机之间的资源互访&#xff0c;由于实验需要&#xff0c;轻车熟路的在linux下配置了samba服务&…

Java构造函数的深入理解

我们人出生的时候&#xff0c;有些人一出生之后再起名字的&#xff0c;但是有些人一旦出生就已经起好名字的。那么我们在 java 里面怎么在对象一旦创建就赋值呢&#xff1f; public class Person {String name; // 姓名int age; // 年龄public static void main(String[]…

1967. 作为子字符串出现在单词中的字符串数目

1967. 作为子字符串出现在单词中的字符串数目 给你一个字符串数组 patterns 和一个字符串 word &#xff0c;统计 patterns 中有多少个字符串是 word 的子字符串。返回字符串数目。 子字符串 是字符串中的一个连续字符序列。 示例 1&#xff1a;输入&#xff1a;patterns [&…

判断IE版本与各浏览器的语句

---恢复内容开始--- 一.IE下判断IE版本的语句 <!--[if lte IE 6]><![endif]-->IE6及其以下版本可见<!--[if lte IE 7]><![endif]-->IE7及其以下版本可见<!--[if IE 6]><![endif]-->只有IE6版本可见<![if !IE]><![endif]>除了I…

各类软件马斯洛需求层次分析_需求的分析层次

各类软件马斯洛需求层次分析When I joined Square, I was embedded on a product that had been in-market for a year but didn’t have dedicated analytics support.当我加入Square时&#xff0c;我被嵌入了已经上市一年但没有专门的分析支持的产品。 As you might expect,…

384. 打乱数组

384. 打乱数组 给你一个整数数组 nums &#xff0c;设计算法来打乱一个没有重复元素的数组。 实现 Solution class: Solution(int[] nums) 使用整数数组 nums 初始化对象int[] reset() 重设数组到它的初始状态并返回int[] shuffle() 返回数组随机打乱后的结果 示例&#xf…

HTTP/2 学习笔记

创建连接TCP三次握手:包括客户端想服务端发起一个SYN包,接着服务端返回对应SYN的ACK响应以及新的SYN包,然后客户端返回对应的ACK.如果客户端发起HTTPS连接,它还需要进行传输层安全协议(TLS)协商;TLS用来取代安全套接层.HTTP1的问题1.队头阻塞:允许一次发送一组请求,但是只能按照…

MySQL的变量分类总结

在MySQL中&#xff0c;my.cnf是参数文件&#xff08;Option Files&#xff09;&#xff0c;类似于ORACLE数据库中的spfile、pfile参数文件&#xff0c;照理说&#xff0c;参数文件my.cnf中的都是系统参数&#xff08;这种称呼比较符合思维习惯&#xff09;&#xff0c;但是官方…

859. 亲密字符串

859. 亲密字符串 给你两个字符串 s 和 goal &#xff0c;只要我们可以通过交换 s 中的两个字母得到与 goal 相等的结果&#xff0c;就返回 true &#xff1b;否则返回 false 。 交换字母的定义是&#xff1a;取两个下标 i 和 j &#xff08;下标从 0 开始&#xff09;且满足 …

python函数不同类型参数顺序

python函数的参数定义顺序必须为&#xff1a; 必须参数&#xff08;位置参数&#xff09;&#xff0c;默认参数&#xff0c;可变参数&#xff0c;命名关键字参数&#xff0c;关键字参数 如以下定义&#xff1a; def f1(a, b, c0, *args, d, **kw): print(a , a, b , b, c , c, …

亚洲国家互联网渗透率_发展中亚洲国家如何回应covid 19

亚洲国家互联网渗透率The COVID-19 pandemic has severely hit various economies across the world, with global impact estimated between USD 6.1 trillion and USD 9.1 trillion, equivalent to a loss of 7.1% to 10.5% of global gross domestic product (GDP).[1] More…

create-react-app项目使用假数据

做新项目的时候&#xff0c;前端每次要等后端接口准备好再开始&#xff0c;就会延期&#xff0c;等后端接口准备好了&#xff0c;前端这边的项目又会相互紧张&#xff0c;如果前端跟后端同时进行&#xff0c;前期将框架&#xff0c;基础做好&#xff0c;定好接口文档&#xff0…

1854. 人口最多的年份

1854. 人口最多的年份 给你一个二维整数数组 logs &#xff0c;其中每个 logs[i] [birthi, deathi] 表示第 i 个人的出生和死亡年份。 年份 x 的 人口 定义为这一年期间活着的人的数目。第 i 个人被计入年份 x 的人口需要满足&#xff1a;x 在闭区间 [birthi, deathi - 1] 内…

snake4444勒索病毒成功处理教程方法工具达康解密金蝶/用友数据库sql后缀snake4444...

*snake4444勒索病毒成功处理教程方法 案例&#xff1a;笔者负责一个政务系统的第三方公司的运维&#xff0c;上班后发现服务器的所有文件都打不开了&#xff0c;而且每个文件后面都有一个snake4444的后缀&#xff0c;通过网络我了解到这是一种勒索病毒。因为各个文件不能正常打…

有史以来最漂亮的游戏机

The recent reveal of the PlayStation 5’s design has divided the gaming world. There are those who appreciate its bold, daring industrial design and those who would have preferred something a little less outlandish; perhaps a little more traditional.吨 他最…

springboot-添加拦截器

在我们日常开发的过程中&#xff0c;经常会遇到这一类问题&#xff0c;要求需要用户登录以后才能够访问其他的内容&#xff0c;否则不行&#xff0c;那么解决这一问题最好的办法就是运用拦截器&#xff0c;拦截器可以和多种处理请求的web框架结合&#xff0c;今天所讲的就是与s…

1945. 字符串转化后的各位数字之和

1945. 字符串转化后的各位数字之和 给你一个由小写字母组成的字符串 s &#xff0c;以及一个整数 k 。 首先&#xff0c;用字母在字母表中的位置替换该字母&#xff0c;将 s 转化 为一个整数&#xff08;也就是&#xff0c;‘a’ 用 1 替换&#xff0c;‘b’ 用 2 替换&#…

墨刀原型制作 位置选择_原型制作不再是可选的

墨刀原型制作 位置选择The ‘role’ of a designer has been a topic of discussion several many years now. In the past decade, the role of a Designer got split into several different roles like — Graphic Designer, User Experience Designer, Interaction Designe…

eclipse maven 构建简单springmvc项目

环境&#xff1a;eclipse Version: Oxygen.3a Release (4.7.3a) 创建maven Project项目&#xff0c;目录结构 修改工程的相关编译属性 修改pop.xml&#xff0c;引入springmvc相关包 <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.…

1859. 将句子排序

1859. 将句子排序 一个 句子 指的是一个序列的单词用单个空格连接起来&#xff0c;且开头和结尾没有任何空格。每个单词都只包含小写或大写英文字母。 我们可以给一个句子添加 从 1 开始的单词位置索引 &#xff0c;并且将句子中所有单词 打乱顺序 。 比方说&#xff0c;句子…