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

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

示例 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,int threshold){int n = mat.size(), m = mat[0].size(); vector<vector<int>>prefix(n +1,vector<int>(m +1));for(int i =0; i < n; i++){for(int j =0; j < m; j++){ prefix[i +1][j +1]= mat[i][j]- prefix[i][j]+ prefix[i][j +1]+ prefix[i +1][j];}}int ans =0;for(int i =0; i < n; i++){for(int j =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++;}}}return ans;}};
同步发文于ZEEKLOG和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源

Read more

VsCode远程连接服务器后安装Github Copilot无法使用

VsCode远程连接服务器后安装Github Copilot无法使用

VsCode远程连接服务器后安装Github Copilot无法使用 1.在Vscode的settings中搜索Extension Kind,如图所示: 2.点击Edit in settings.json,添加如下代码: "remote.extensionKind":{"GitHub.copilot":["ui"],"GitHub.copilot-chat":["ui"],} remote.extensionKind 的作用 这是 VS Code 的远程开发配置项,用于控制扩展在远程环境(如 SSH、容器、WSL)中的运行位置。可选值: “ui”:扩展在本地客户端运行 “workspace”:扩展在远程服务器运行 这两个扩展始终在 本地客户端运行,

By Ne0inhk

深度解析 GitHub Copilot Agent Skills:如何打造可跨项目的 AI 专属“工具箱”

前言 随着 GitHub Copilot 从单纯的“代码补全”工具向 Copilot Agent(AI 代理) 进化,开发者们迎来了更高的定制化需求。我们不仅希望 AI 能写代码,更希望它能理解团队的特殊规范、掌握内部工具的使用方法,甚至在不同的项目中复用这些经验。 Agent Skills(代理技能) 正是解决这一痛点的核心机制。本文将深入解析 Copilot Skills 的工作原理,并分享如何通过软链接(Symbolic Link)与自动化工作流,构建一套高效的个人及团队知识库。 一、 什么是 Agent Skills? 如果说 Copilot 是一个通用的“AI 程序员”,那么 Skill(技能) 就是你为它配备的专用工具箱。 它不仅仅是一段简单的提示词(Prompt),而是一个包含元数据、指令和执行资源的标准文件夹结构。当

By Ne0inhk

Git-RSCLIP GPU利用率优化教程:显存占用与推理速度平衡策略

Git-RSCLIP GPU利用率优化教程:显存占用与推理速度平衡策略 1. 引言:为什么需要GPU优化 Git-RSCLIP作为专为遥感图像设计的图文检索模型,在实际应用中经常面临GPU资源紧张的问题。许多用户在部署后发现,虽然模型功能强大,但显存占用高、推理速度慢,影响了实际使用体验。 本文将分享一套实用的GPU优化策略,帮助你在保持模型精度的同时,显著提升推理效率。无论你是个人开发者还是团队技术负责人,这些方法都能让你的Git-RSCLIP部署更加高效。 2. Git-RSCLIP模型特性与资源需求 2.1 模型架构特点 Git-RSCLIP基于SigLIP架构,专为遥感图像优化。模型参数量约为1.3GB,支持256x256分辨率的图像输入。在推理过程中,主要消耗资源的环节包括: * 图像编码器的前向计算 * 文本编码器的特征提取 * 相似度计算矩阵运算 * 结果排序和后处理 2.2 典型资源消耗模式 在实际测试中,Git-RSCLIP的典型资源消耗表现为: # 单次推理资源消耗示例 - 显存占用: 1.8-2.2GB (包含模型权重+推理中间结果

By Ne0inhk
手搓STM32H743开源飞控系列教程---(一)飞控调研与方案设计

手搓STM32H743开源飞控系列教程---(一)飞控调研与方案设计

开源飞控所有资料均汇总在:物唯AI智慧文档  ZEEKLOG系列文章 手搓STM32H743开源飞控系列教程---(一)飞控调研与方案设计-ZEEKLOG博客 手搓STM32H743开源飞控系列教程---(二)源码下载,修改引脚定义、编译固件-ZEEKLOG博客 手搓STM32H743开源飞控系列教程---(三)物唯飞控原理图讲解、硬件引脚讲解、一键适配官方固件 手搓STM32H743开源飞控系列教程---(四) 番外~~AI问答知识库上线-ZEEKLOG博客 手搓STM32H743开源飞控系列教程---(五) 飞控IMU与罗盘方向调整-ZEEKLOG博客 手搓STM32H743开源飞控系列教程---(六) PCB被判定为嘉立创存在拆单嫌疑怎么处理?_嘉立创 百元h743-ZEEKLOG博客 手搓STM32H743开源飞控系列教程---(七) 一文讲清所有固件烧录方法!-ZEEKLOG博客 手搓STM32H743开源飞控系列教程---(八) 固件编译视频教程:编译APM固件、编译BF固件 放在最前面 0)首飞视频 F450机架,烧录Ardup

By Ne0inhk