news 2026/4/28 9:59:29

LeetCode 1292.元素和小于等于阈值的正方形的最大边长:二维前缀和(无需二分)+抽象速懂的描述

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 1292.元素和小于等于阈值的正方形的最大边长:二维前缀和(无需二分)+抽象速懂的描述

【LetMeFly】1292.元素和小于等于阈值的正方形的最大边长:二维前缀和(无需二分)+抽象速懂的描述

力扣题目链接:https://leetcode.cn/problems/maximum-side-length-of-a-square-with-sum-less-than-or-equal-to-threshold/

给你一个大小为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] <= 104
  • 0 <= threshold <= 105

解题方法:前缀和

二维矩阵的二维前缀和可以快速计算出某个子矩阵的元素和。

AB CD

其中prefix[D]代表从左上角到D这个矩阵的元素和,计算方法为D+B+C-A

ABC DEF GHI

那么想计算EFHI这个子矩阵的元素和就只需要prefix[I]-prefix[C]-prefix[G]+prefix[A]

二层循环枚举矩阵左上角顶点,使用一个变量ans作为答案合法边长并且只增不减,那么二层循环时间复杂度O ( m n ) O(mn)O(mn),内层ans总时间复杂度不会超过O min ⁡ ( m , n ) O\min(m,n)Omin(m,n)

  • 时间复杂度O ( m n ) O(mn)O(mn)
  • 空间复杂度O ( N log ⁡ N ) O(N\log N)O(NlogN)

AC代码

C++
/* * @LastEditTime: 2026-01-19 21:55:16 */classSolution{public:intmaxSideLength(vector<vector<int>>&mat,intthreshold){intn=mat.size(),m=mat[0].size();vector<vector<int>>prefix(n+1,vector<int>(m+1));for(inti=0;i<n;i++){for(intj=0;j<m;j++){prefix[i+1][j+1]=mat[i][j]-prefix[i][j]+prefix[i][j+1]+prefix[i+1][j];}}intans=0;for(inti=0;i<n;i++){for(intj=0;j<m;j++){while(i+ans<n&&j+ans<m&&prefix[i+ans+1][j+ans+1]-prefix[i+ans+1][j]-prefix[i][j+ans+1]+prefix[i][j]<=threshold){ans++;}}}returnans;}};

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 19:47:22

终极解决方案:4步彻底告别微信网页版访问限制

终极解决方案&#xff1a;4步彻底告别微信网页版访问限制 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 在当今数字化办公环境中&#xff0c;微信已成…

作者头像 李华
网站建设 2026/4/24 0:35:22

BAAI/bge-m3如何集成?Python调用API避坑指南代码实例

BAAI/bge-m3如何集成&#xff1f;Python调用API避坑指南代码实例 1. 引言&#xff1a;语义相似度在AI系统中的核心价值 随着大模型应用的深入&#xff0c;语义理解能力已成为构建智能系统的基石。在检索增强生成&#xff08;RAG&#xff09;、问答系统、文本聚类等场景中&…

作者头像 李华
网站建设 2026/4/23 14:09:57

BERT-base-chinese源码解读:Transformer架构详解

BERT-base-chinese源码解读&#xff1a;Transformer架构详解 1. 引言&#xff1a;中文NLP的基石模型 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;预训练语言模型的发展彻底改变了文本理解的方式。其中&#xff0c;Google于2018年发布的BERT&#xff08;Bidir…

作者头像 李华
网站建设 2026/4/24 2:09:47

AD导出Gerber文件教程:通俗解释各选项含义

AD导出Gerber文件实战指南&#xff1a;彻底搞懂每一项设置的真正含义你有没有遇到过这种情况——PCB打样回来&#xff0c;发现焊盘没开窗、丝印错位&#xff0c;甚至整块板子短路&#xff1f;别急着怀疑工厂水平&#xff0c;问题很可能出在你自己导出的Gerber文件上。在Altium …

作者头像 李华
网站建设 2026/4/24 2:09:48

零代码实现文档OCR:MinerU开箱即用体验

零代码实现文档OCR&#xff1a;MinerU开箱即用体验 1. 背景与需求痛点 1.1 文档数字化的现实挑战 在企业知识管理、学术研究和金融分析等场景中&#xff0c;大量非结构化文档&#xff08;如PDF扫描件、财报截图、论文图像&#xff09;需要转化为可编辑、可检索的文本数据。传…

作者头像 李华
网站建设 2026/4/27 13:34:04

DeepSeek-R1-Distill-Qwen-1.5B开源贡献:社区协作开发指南

DeepSeek-R1-Distill-Qwen-1.5B开源贡献&#xff1a;社区协作开发指南 1. 引言 1.1 项目背景与技术动机 随着大语言模型在推理能力、代码生成和数学解题等复杂任务中的需求不断增长&#xff0c;如何高效提升中小规模模型的智能表现成为社区关注的核心问题。DeepSeek-R1-Dist…

作者头像 李华