news 2026/4/18 10:18:39

leetcode 1292. 元素和小于等于阈值的正方形的最大边长 中等

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 1292. 元素和小于等于阈值的正方形的最大边长 中等

给你一个大小为m x n的矩阵mat和一个整数阈值threshold

请你返回元素总和小于或等于阈值的正方形区域的最大边长;如果没有这样的正方形区域,则返回0

示例 1:

输入:mat = [[1,1,3,2,4,3,2],[1,1,3,2,4,3,2],[1,1,3,2,4,3,2]], threshold = 4输出:2解释:总和小于或等于 4 的正方形的最大边长为 2,如图所示。

示例 2:

输入:mat = [[2,2,2,2,2],[2,2,2,2,2],[2,2,2,2,2],[2,2,2,2,2],[2,2,2,2,2]], threshold = 1输出:0

提示:

  • m == mat.length
  • n == mat[i].length
  • 1 <= m, n <= 300
  • 0 <= mat[i][j] <= 10^4
  • 0 <= threshold <= 10^5

分析:预处理出二维前缀和数组 pre_sum,其中 pre_sum[i][j] 代表坐标 (i,j) 自身以及它下方、右方所有元素的和。之后枚举正方形边长,检查是否存在元素和小于 threshold 的情况。

int maxSideLength(int** mat, int matSize, int* matColSize, int threshold) { int n=matSize,m=matColSize[0]; int pre_sum[n+5][m+5]; for(int i=0;i<=n;++i) for(int j=0;j<=m;++j) pre_sum[i][j]=0; pre_sum[n-1][m-1]=mat[n-1][m-1]; for(int j=m-2;j>=0;--j) pre_sum[n-1][j]=mat[n-1][j]+pre_sum[n-1][j+1]; for(int i=n-2;i>=0;--i) pre_sum[i][m-1]=mat[i][m-1]+pre_sum[i+1][m-1]; for(int i=n-2;i>=0;--i) for(int j=m-2;j>=0;--j) pre_sum[i][j]=mat[i][j]+pre_sum[i+1][j]+pre_sum[i][j+1]-pre_sum[i+1][j+1]; int maxn=n>=m?m:n,ans=0; for(int l=0;l<=maxn;++l) { int f=0; for(int i=0;i<n-l&&!f;i++) { int sum=0; for(int j=0;j<m-l&&!f;++j) { sum=pre_sum[i][j]-pre_sum[i+l+1][j]-pre_sum[i][j+l+1]+pre_sum[i+l+1][j+l+1]; if(sum<=threshold) f=1; } } if(!f)break; ans=l+1; } return ans; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/10 21:24:55

GESP认证C++编程真题解析 | 202312 一级

​欢迎大家订阅我的专栏&#xff1a;算法题解&#xff1a;C与Python实现&#xff01; 本专栏旨在帮助大家从基础到进阶 &#xff0c;逐步提升编程能力&#xff0c;助力信息学竞赛备战&#xff01; 专栏特色 1.经典算法练习&#xff1a;根据信息学竞赛大纲&#xff0c;精心挑选…

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

计算机小程序毕设实战-基于springboot+小程序的高校学院校友会系统校友企业管理,母校要闻管理,校园风景管理,班级信息管理,活动类型管理,【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

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

通义千问2.5-7B企业应用案例:金融报告生成系统部署全流程

通义千问2.5-7B企业应用案例&#xff1a;金融报告生成系统部署全流程 1. 引言&#xff1a;AI驱动金融内容生成的现实需求 在金融行业&#xff0c;定期生成高质量、结构化且合规的报告是投研、风控与客户沟通的核心环节。传统方式依赖分析师手动整理数据、撰写摘要并校对格式&…

作者头像 李华
网站建设 2026/4/18 5:44:15

当我们系统遇到mfc70u.dll丢失找不到问题 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/4/18 7:33:27

能量密度提升瓶颈:国产PLM如何支撑新能源电池材料创新突破

能量密度作为新能源电池的核心性能指标&#xff0c;直接决定电动车续航、储能设备容量等关键应用场景表现。中国汽车工业协会2026年1月最新数据显示&#xff0c;2025年四季度国内动力电池装车量达98.3GWh&#xff0c;同比增长15.2%&#xff0c;但能量密度提升陷入瓶颈——当前纯…

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

【单片机毕业设计】【dz-1151】基于单片机的风力发电控制系统设计

一、功能简介项目名&#xff1a;基于单片机的风力发电控制系统设计 项目编号&#xff1a;dz-1151 单片机类型&#xff1a;STM32F103C8T6 具体功能&#xff1a; 1、通过风速检测模块检测当前环境的风速&#xff0c;通过风速给锂电池充电&#xff1b; 2、通过电压检测模块检测当前…

作者头像 李华