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

openclaw使用llama.cpp 本地大模型部署教程

openclaw使用llama.cpp 本地大模型部署教程

openclaw使用llama.cpp 本地大模型部署教程 本教程基于实际操作整理,适用于 Windows WSL2 环境 全程使用 openclaw 帮我搭建大模型 一、环境准备 1. 硬件要求 显卡推荐模型显存占用GTX 1050 Ti (4GB)Qwen2.5-3B Q4~2.5GBRTX 4060 (8GB)Qwen2.5-7B Q4~5GBRTX 4090 (24GB)Qwen2.5-32B Q4~20GB 2. 安装编译工具(WSL Ubuntu) sudoapt update sudoaptinstall -y cmake build-essential 二、下载和编译 llama.cpp

By Ne0inhk
GitHub学生认证

GitHub学生认证

目录 GitHub 学生认证申请指南 流程         1进入github准备         2.编辑个人信息         3.添加2FA(两步验证)         4.添加账单信息         5.开始进行认证 认证有效期 GitHub 学生认证申请指南      GitHub 学生认证允许学生免费使用 GitHub Pro 功能,包括私有仓库、协作工具等。以下是申请流程和注意事项:  准备材料      1.首先你需要有自己的GitHub账号 , 2你要能进入GitHub ,3.你要有效的学校邮箱(以 .edu 或学校域名结尾) 4.当前在读证明(学生证、录取通知书或学信网验证报告) 一般手写材料 成功率高 流程         1进入github准备           https://github.com/进入登录github账号         2.编辑个人信息        注:个人信息其中1.

By Ne0inhk
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