news 2026/9/2 21:47:45

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/8/25 12:32:57

这几个低代码数据采集爬虫工具,非常强大~

爬虫&#xff0c;又称为网络爬虫或网页爬虫&#xff0c;是一种自动浏览互联网的程序&#xff0c;它按照一定的算法顺序访问网页&#xff0c;并从中提取有用信息。爬虫软件通常由以下几部分组成&#xff1a; - 用户代理&#xff08;User-Agent&#xff09;&#xff1a;模拟浏览…

作者头像 李华
网站建设 2026/8/27 17:43:31

基于DeepSeek-OCR大模型的WebUI部署指南,支持PDF与批量处理

基于DeepSeek-OCR大模型的WebUI部署指南&#xff0c;支持PDF与批量处理 1. 简介与核心价值 DeepSeek-OCR 是一款由 DeepSeek 开源的高性能光学字符识别&#xff08;OCR&#xff09;大模型&#xff0c;专为复杂场景下的文本提取任务设计。其采用先进的深度学习架构&#xff0c…

作者头像 李华
网站建设 2026/8/27 8:53:43

iOS App 抓不到包时的常见成因与判断思路,结合iOS 调试经验

很多人第一次遇到 iOS 抓不到包&#xff0c;反应都很一致&#xff0c;重装证书、换端口、重启工具、再试一次。 但如果你做过几次真实项目&#xff0c;很快就会意识到一个事实&#xff1a; 抓不到包&#xff0c;本质上是网络路径不在你的位置上。 工具只是在某一层等请求经过&a…

作者头像 李华
网站建设 2026/9/2 6:28:38

Redis 性能问题全解析:90% 的人都把活干错了地方

有一天,我在小区楼下吃火锅。这家店平时生意一般,但那天刚好是周五晚上,又赶上短视频平台一个博主探店,一下子全城爆单。 老板急得满头大汗,一边招呼客人,一边对我说了一句特别有“Redis 味道”的话:“小伙子,不是菜不好,是后厨快被自己累死了。” 我当时一愣。后来…

作者头像 李华
网站建设 2026/9/1 14:51:09

AI开发者必读:Qwen2.5开源模型支持多语言推理的落地实践

AI开发者必读&#xff1a;Qwen2.5开源模型支持多语言推理的落地实践 1. 背景与技术选型动机 随着全球化业务场景的不断扩展&#xff0c;AI应用对多语言支持的需求日益迫切。无论是跨国企业客服系统、跨境电商内容生成&#xff0c;还是本地化智能助手&#xff0c;都需要大语言…

作者头像 李华