当前位置: 首页 > news >正文

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; }
http://www.jsqmd.com/news/268555/

相关文章:

  • 阿里OSS简单上传 有分片
  • Obsidian同步太折腾?试试坚果云官方插件:免WebDAV配置,支持Git级冲突合并
  • GESP认证C++编程真题解析 | 202312 一级
  • 我常用的一个电商数据采集软件,低代码爬虫
  • 长晶科技AD-BC807、AD-BC847、AD-BC857 等多系列车规三极管解析
  • Obsidian移动端同步终极方案:坚果云官方插件深度评测(附防冲突与加速技巧)
  • springboot交通管理在线服务系统的开发(11736)
  • 突破局域网限制!Pansou+cpolar 让网盘资源搜索自由又高效
  • springboot火锅店管理系统(11737)
  • GESP认证C++编程真题解析 | 202403 八级
  • 铁门关双河可克达拉昆玉胡杨河新星英语雅思辅导机构推荐,2026权威出国雅思课程口碑排行榜 - 老周说教育
  • springboot高校专业实习管理系统(11738)
  • 基于MATLAB的仪表表盘识别程序设计与实现
  • 新手去哪找文艺风冬天的微信公众号模板? - peipei33
  • 新加坡公司注册、泰国公司注册、海外odi备案代办、海外公司注册、海外投资备案odi、深圳odi备案代办、深圳境外投资备案odi选择指南 - 优质品牌商家
  • 阿勒泰地区英语雅思辅导机构推荐,2026权威出国雅思课程口碑排行榜 - 老周说教育
  • 2014-2025年城市房住不炒政策数据DID
  • springboot校园组团平台(11740)
  • 1_6_五段式SVPWM (传统算法反正切+DPWM2)算法理论与 MATLAB 实现详解
  • 2001-2024年地级市互联网普及率
  • pdf生成排查记录与解决方案
  • 1998-2025年中国县域数字基础设施水平
  • 2026年目前比较好的防爆升降机生产商哪家强,防爆升降平台/翻转平台/登车桥/装车平台/装卸平台,升降机生产厂家推荐 - 品牌推荐师
  • 全面讲解常见虚拟串口工具的初始化配置
  • 当我们的系统经常遇到mfc42.dll文件找不到问题 免费下载方法分享
  • 塔城地区英语雅思辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 老周说教育
  • 大寒:冬之终章,春之序曲
  • 当我们系统遇到mfc70u.dll丢失找不到问题 免费下载方法分享
  • 当我们的系统出现mfc100.dll丢失找不到问题 免费下载方法分享
  • 通义千问2.5-7B企业应用案例:金融报告生成系统部署全流程