news 2026/2/2 5:47:33

leetcode 1895. 最大的幻方 中等

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 1895. 最大的幻方 中等

一个k x k幻方指的是一个k x k填满整数的方格阵,且每一行、每一列以及两条对角线的和全部相等。幻方中的整数不需要互不相同。显然,每个1 x 1的方格都是一个幻方。

给你一个m x n的整数矩阵grid,请你返回矩阵中最大幻方尺寸(即边长k)。

示例 1:

输入:grid = [[7,1,4,5,6],[2,5,1,6,4],[1,5,4,3,2],[1,2,7,3,4]]输出:3解释:最大幻方尺寸为 3 。 每一行,每一列以及两条对角线的和都等于 12 。 - 每一行的和:5+1+6 = 5+4+3 = 2+7+3 = 12 - 每一列的和:5+5+2 = 1+4+7 = 6+3+3 = 12 - 对角线的和:5+4+3 = 6+4+2 = 12

示例 2:

输入:grid = [[5,1,3,1],[9,3,3,1],[1,3,3,8]]输出:2

提示:

  • m == grid.length
  • n == grid[i].length
  • 1 <= m, n <= 50
  • 1 <= grid[i][j] <= 10^6

分析:先求出水平、垂直、主对角线、反对角线的前缀和,再枚举幻方边长,遍历矩阵的每个点作为左上角点时幻方是否满足条件。

int largestMagicSquare(int** grid, int gridSize, int* gridColSize) { int n=gridSize,m=gridColSize[0],ans=1; int sum_hor[n+5][m+5],sum_ver[n+5][m+5],sum_lr[n+5][m+5],sum_rl[n+5][m+5]; for(int i=0;i<=n;++i) for(int j=0;j<=m;++j) sum_hor[i][j]=sum_ver[i][j]=sum_lr[i][j]=sum_rl[i][j]=0; for(int i=0;i<n;++i) for(int j=m-1;j>=0;--j) sum_hor[i][j]=grid[i][j]+sum_hor[i][j+1]; for(int j=0;j<m;++j) for(int i=n-1;i>=0;--i) sum_ver[i][j]=grid[i][j]+sum_ver[i+1][j]; for(int i=n-1;i>=0;--i) for(int j=m-1;j>=0;--j) sum_lr[i][j]=grid[i][j]+sum_lr[i+1][j+1]; for(int i=n-1;i>=0;--i) for(int j=0;j<m;++j) { sum_rl[i][j]=grid[i][j]; if(j)sum_rl[i][j]+=sum_rl[i+1][j-1]; } int maxn=fmin(n,m); for(int l=1;l<maxn;++l) { for(int i=0;i<n-l;++i) { for(int j=0;j<m-l;++j) { int temp=sum_lr[i][j]-sum_lr[i+l+1][j+l+1],f1=0; if(j-1>=0) { if(sum_rl[i][j+l]-sum_rl[i+l+1][j-1]==temp)f1=1; } else if(sum_rl[i][j+l]==temp)f1=1; for(int k=0;k<=l&&f1;++k) { if(sum_hor[i+k][j]-sum_hor[i+k][j+l+1]!=temp)f1=0; if(sum_ver[i][j+k]-sum_ver[i+l+1][j+k]!=temp)f1=0; } if(f1)ans=fmax(ans,l+1); } } } return ans; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/24 4:04:17

历时数十年的漏洞与新堆损坏问题,Linux系统关键glibc漏洞曝光

作为大多数Linux系统核心基础的GNU C库&#xff08;glibc&#xff09;维护团队披露了两个安全漏洞的详细信息&#xff0c;问题严重性从高危堆损坏到信息泄露不等。这些漏洞影响范围广泛&#xff0c;其中一个漏洞可追溯至glibc 2.0版本。高危漏洞的技术特性虽然这两个漏洞都可能…

作者头像 李华
网站建设 2026/1/26 12:39:21

《P2455 [SDOI2006] 线性方程组》

题目描述 已知 n 元线性一次方程组。 ⎩⎨⎧​a1,1​x1​a1,2​x2​⋯a1,n​xn​b1​a2,1​x1​a2,2​x2​⋯a2,n​xn​b2​⋯an,1​x1​an,2​x2​⋯an,n​xn​bn​​ 请根据输入的数据&#xff0c;编程输出方程组的解的情况。 输入格式 第一行输入未知数的个数 n。 接下…

作者头像 李华
网站建设 2026/1/22 5:02:59

会计职称考试照片大小标准是多少?快速压缩方法分享

报考会计职称时&#xff0c;不少人卡在照片上传这一步&#xff1a;要么提示照片太大无法提交&#xff0c;要么格式不符合要求&#xff0c;找压缩工具又怕下载的软件有广告、操作复杂。会计职称考试报名照片有明确规范&#xff1a;背景需为白色&#xff0c;采用近期 1 寸免冠证件…

作者头像 李华
网站建设 2026/1/25 14:40:48

GIF动画在线制作工具怎么选?GIF中文网免费动图制作全攻略

做自媒体配图、电商主图或课件动图时&#xff0c;总遇到GIF制作复杂、转换后格式不兼容&#xff0c;甚至动图太大无法上传的问题&#xff0c;浪费大量时间还没效果。今天给大家推荐5分钟快速上手的在线GIF工具&#xff08;https://www.gif.cn/&#xff09; ——GIF 中文网&…

作者头像 李华
网站建设 2026/1/27 4:39:05

我常用的一个电商数据采集软件,低代码爬虫

最近DeepSeek大火&#xff0c;对话质量之高一度超过ChatGPT、Claude等主流海外模型。你知道什么决定了大模型训练结果的好坏吗?除了算法外&#xff0c;训练数据的质和量起着决定性作用&#xff0c;而很多AI公司用到的训练数据就是利用爬虫技术从全网抓取的&#xff0c;这也是O…

作者头像 李华
网站建设 2026/2/1 21:47:01

计算机毕设java疫情期间物资分配管理系统 基于Java的疫情期间物资分配与监管系统 疫情期间物资调配管理系统的设计与实现

计算机毕设java疫情期间物资分配管理系统714499 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。在疫情的特殊背景下&#xff0c;物资分配管理的高效性与准确性显得尤为重要。传统…

作者头像 李华