Leetcode.1292 元素和小于等于阈值的正方形的最大边长
创始人
2025-05-31 08:44:09
0

题目链接

Leetcode.1292 元素和小于等于阈值的正方形的最大边长 Rating : 1735

题目描述

给你一个大小为 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<=3001 <= m, n <= 3001<=m,n<=300
  • 0<=mat[i][j]<=1040 <= mat[i][j] <= 10^40<=mat[i][j]<=104
  • 0<=threshold<=1050 <= threshold <= 10^50<=threshold<=105

解法:二维前缀和 + 二分

首先我们将原矩阵转换为 二维前缀和矩阵s

转换公式 : s(i,j)=s(i−1,j)+s(i,j−1)−s(i−1,j−1)+mat(i−1,j−1)s(i,j) = s(i-1,j) + s(i,j-1) - s(i-1,j-1) + mat(i-1,j-1)s(i,j)=s(i−1,j)+s(i,j−1)−s(i−1,j−1)+mat(i−1,j−1)

接着我们再 二分边长 k,左边界 l = 1,右边界 r = min(m , n)mn分别是mat的行数和列数)。

如果当前矩阵 mat中能找出边长为 k的正方形,即 l = k;否则 r = k - 1

对于终点为 (i , j),我们计算边长为 k的总和公式为 sum=s(i,j)−s(i−k,j)−s(i,j−k)+s(i−k,j−k)sum = s(i,j) - s(i-k,j) - s(i,j-k) + s(i-k,j-k)sum=s(i,j)−s(i−k,j)−s(i,j−k)+s(i−k,j−k)

时间复杂度: O(m∗n∗log(min(m,n))O(m * n *log(min(m,n))O(m∗n∗log(min(m,n))

C++代码:


class Solution {
public:int maxSideLength(vector>& mat, int threshold) {int m = mat.size() , n = mat[0].size();vector> s(m+1,vector(n + 1));for(int i = 1;i <= m;i++){for(int j = 1;j <= n;j++){s[i][j] = s[i][j-1] + s[i-1][j] - s[i-1][j-1] + mat[i-1][j-1];}}int l = 0 , r = min(m,n);while(l < r){int k = (l + r + 1)/2;bool ok = false;for(int i = k;i <= m;i++){for(int j = k;j <= n;j++){int area = s[i][j] - s[i][j-k] - s[i-k][j] + s[i-k][j-k];if(area <= threshold){ok = true;break;}}}if(ok) l = k;else r = k - 1;}return r;}
};

相关内容

热门资讯

常州法院2025年前三季度调解... 调解结案16474件、调解成功率24.08%——这是2025年前三季度常州法院交出的司法成绩单。通过...
安徽省政协研究室副主任陈鑫已任... 据铜陵市政府官网消息,11月20日上午,市委举行理论学习中心组学习会议,邀请省委社会工作部副部长高维...
原创 联... 据光明网报道,11月19日,在联合国大会的讨论中,日本企图争取成为安理会常任理事国的梦想再次破灭,令...
南部关于全县规范法律咨询服务机... 一、专项行动时间 自即日起至2025年12月。 二、举报受理范围 社会各界反映强烈的某些法律咨询服务...
“男子持刀入室盗窃”视频引发关... 近日,一段疑似“小偷”入室盗窃被业主家中监控拍下的视频在网上引发关注。11月21日晚,“翠屏公安”微...
绝不允许日本军国主义幽灵复活!... 2025年11月7日,日本首相高市早苗宣称,如果中国大陆对台湾出动军舰并使用武力,可能会构成“存亡危...
【解决】AI法律助手荣获202... 2025全球数字经济大会启幕,搭建国际数字合作高端平台 经国务院批准,由北京市人民政府、国家互联网信...
嘉兴男子与妻争吵,突然将行李箱... 近日,浙江嘉兴一对夫妻因琐事发生争吵,丈夫突然将装满衣物的行李箱从6楼扔到楼下,引发关注。11月22...
三地107家律所齐聚丰台,京津... 11月22日,京津冀律师驿站举办“党建业务深度融合 促进行业规范发展”主题活动,发布“百千万行动计划...