news 2026/4/18 8:30:21

A.每日一题:2946. 循环移位后的矩阵相似检查

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
A.每日一题:2946. 循环移位后的矩阵相似检查

题目链接:2946. 循环移位后的矩阵相似检查(简单)

算法原理:

解法:模拟

1ms击败100.00%

时间复杂度O(mn)

针对每一行a

首先我们要找到左移和右移k次后的位置在哪:

n为该行一维数组的长度

右移k次:i的最终位置在(i+k)%n

左移k次:i的最终位置在(i-k)%n,由于是减法,因此需要额外+n避免负数,且k要%=n,否则会出现(0-3+2)%2=-1的情况

那么接下来就很好解决了,对每一行进行判断:

如果该行是奇数行就右移检查最终是否相同

如果该行是偶数行就左移检查最终是否相同

只要其中有一个不相同,直接返回false

优化

1ms击败100.00%

时间复杂度O(mn)

在上述式子中,如果要保证移位后的数组与原数组相同

右移要保证:a[(i+k)%n]=a[i]①

左移要保证:a[(i-k)%n]=a[i]②

其实这两个式子是等价的,因为我们把 i=(i-k)%n代入①式,会发现:

a[i%n]=a[(i-k)%n],也就是说a[i]=a[(i-k)%n],这正好就是①式,因此我们针对奇偶数完全可以只用这一个式子来判断

Java代码:

class Solution { public boolean areSimilar(int[][] mat, int k) { int m=mat.length; for(int i=0;i<m;i++) if(!turn(mat[i],k,i%2==1)) return false; return true; } private boolean turn(int[] a,int k,boolean odd){ int n=a.length; k%=n; int[] ret=new int[n]; if(odd) for(int i=0;i<n;i++) ret[(i+k)%n]=a[i]; else for(int i=0;i<n;i++) ret[(i-k+n)%n]=a[i]; for(int i=0;i<n;i++) if(ret[i]!=a[i]) return false; return true; } }
class Solution { //优化 public boolean areSimilar(int[][] mat, int k) { int m=mat.length; for(int i=0;i<m;i++) if(!turn(mat[i],k)) return false; return true; } private boolean turn(int[] a,int k){ int n=a.length; int[] ret=new int[n]; for(int i=0;i<n;i++) ret[(i+k)%n]=a[i]; for(int i=0;i<n;i++) if(ret[i]!=a[i]) return false; return true; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:28:21

新概念英语第二册05_No wrong numbers

Lesson 5: No wrong numbersKey words and expressions garage 修车厂Silbury 锡尔伯里Pinhurst 平赫斯特pigeon 鸽子message 信息cover 越过distance 距离request 要求&#xff0c;请求spare part 备件urgent 紧急的 Questions on the text W…

作者头像 李华
网站建设 2026/4/18 8:26:32

Mermaid Live Editor:重新定义可视化编程的智能在线编辑器

Mermaid Live Editor&#xff1a;重新定义可视化编程的智能在线编辑器 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-ed…

作者头像 李华
网站建设 2026/4/18 8:25:46

ClaudeOpus4.7深度解析SWE-bench64.3%登顶视觉3倍提升xhigh努力等级

Claude Opus 4.7深度解析&#xff1a;SWE-bench 64.3%登顶、视觉3倍提升、xhigh努力等级重磅发布 文章关键字 Claude Opus 4.7、Anthropic、SWE-bench 64.3%、AI编程能力、视觉模型、xhigh努力等级、自适应推理、Claude Code新默认、GPT-6对比、Gemini 3.1 Pro对比、代码生成…

作者头像 李华