news 2026/3/4 9:09:30

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/2/28 21:42:27

注意!这几家正规丙烯酸厂家,你必读!

《丙烯酸哪家好&#xff1a;排名前五专业深度测评》开篇&#xff1a;定下基调在化工领域&#xff0c;丙烯酸作为一种重要的有机合成原料&#xff0c;广泛应用于涂料、胶粘剂、化纤等众多行业。其质量的优劣直接影响到下游产品的性能和品质。因此&#xff0c;为了帮助对丙烯酸感…

作者头像 李华
网站建设 2026/3/3 23:17:13

孩子近视了,接下来该做什么?

当孩子的视力检测单上出现“视力不良”的时候&#xff0c;不少家长都会陷入焦虑与迷茫&#xff1a;要不要立刻配眼镜&#xff1f;日常该怎么护理&#xff1f;如何阻止近视度数加深&#xff1f;事实上&#xff0c;孩子近视后的干预是一项系统性工作&#xff0c;既需要科学的检查…

作者头像 李华
网站建设 2026/2/25 16:27:47

亲测好用9个AI论文平台,本科生毕业论文轻松搞定!

亲测好用9个AI论文平台&#xff0c;本科生毕业论文轻松搞定&#xff01; AI 工具如何助力论文写作&#xff0c;让毕业之路更轻松 随着人工智能技术的不断进步&#xff0c;越来越多的 AI 工具被应用于学术写作领域。对于本科生来说&#xff0c;撰写毕业论文是一项既重要又充满挑…

作者头像 李华
网站建设 2026/2/12 11:35:19

基于ssm+vue的库克血站信息管理系统[ssm]-计算机毕业设计源码+LW文档

摘要&#xff1a;血站信息管理对于保障血液供应的安全与高效至关重要。本文设计并实现了基于SSM&#xff08;SpringSpringMVCMyBatis&#xff09;后端框架与Vue前端框架的库克血站信息管理系统。系统涵盖系统用户管理、通知公告管理、医生&#xff08;工作人员&#xff09;管理…

作者头像 李华
网站建设 2026/3/3 15:21:49

Python异常捕获:从入门到实践

引言 在Python编程中&#xff0c;异常处理是构建健壮程序的关键部分。就像开车需要安全带一样&#xff0c;编写代码也需要异常处理机制来应对可能出现的错误情况。本文将深入探讨Python中的异常捕获机制&#xff0c;帮助你编写更稳定、更易维护的代码。 什么是异常&#xff1f;…

作者头像 李华