[LC优选算法#19] 前缀和 | 连续数组 | 矩阵区域和 1. 连续数组连续数组解题思路暴力O(N^2)枚举所有子数组判断数组内部的01数量是否满足要求。不难发现本题和前几道前缀和题目的要求类似都是在一个数组中找一段区间。如果使用前缀和的方法本题就转化为找出一段和固定的连续区间。由于0在加法中很难体现因此考虑将0看作-1这样题目就变为找一段连续的区间使得这段区间的和为0。于是思路就和上一题查找和为k的子数组很类似了。前缀和哈希表时O(N)空O(N)引入哈希表存储子串的前缀和转化为在数组中查找和为0的区间和。注意点需要留意哈希表下标为0的位置是初始化为-1而不是0因为在思路上我们将0当作-1看待。同时因为求的是最长数组的长度因此哈希表的第二个参数用于存储下标。在遇到重复的sum我们只需保留最早出现sum的下标即可长度最大。classSolution{public:intfindMaxLength(vectorintnums){unordered_mapint,inthash;intnnums.size();intsum0,ret0;hash[0]-1;//下标为-1for(inti0;in;i){sum(nums[i]0?-1:1);if(hash.count(sum)!0){intleni-hash[sum];//注意画图这里不用加1retmax(ret,len);}else{hash[sum]i;}}returnret;}};2. 矩阵区域和矩阵区域和解题思路大致题意是求出数组中每个坐标上下左右扩展k格的区间和并返回新的数组。由于需要连续多次求出二维区间的区间和因此选用前缀和的思想解决。步骤如下step1预处理出一个二维前缀和数组vvstep2创建新数组ret将每个区间和放入数组的对应位置中step3返回ret数组优化点计算前缀和时边界情况的处理很复杂因此我们可以预留第1行和第1列全为0。也就是说mat[i][j]对应的位置为vv[i 1][j 1]。本题关键在于填写ret矩阵时需要找到原矩阵对应区域的左上角和右下角的坐标因此一定要勤于画图classSolution{public:vectorvectorintmatrixBlockSum(vectorvectorintmat,intk){intmmat.size();intnmat[0].size();vectorvectorintvv(m1,vectorint(n1,0));vectorvectorintret(m,vectorint(n));//矩阵和for(inti1;im;i){for(intj1;jn;j){vv[i][j]mat[i-1][j-1]vv[i-1][j]vv[i][j-1]-vv[i-1][j-1];}}for(inti0;im;i){for(intj0;jn;j){intx1(i-k0?0:i-k)1;inty1(j-k0?0:j-k)1;intx2(ikm-1?m-1:ik)1;inty2(jkn-1?n-1:jk)1;intsumvv[x2][y2]-vv[x2][y1-1]-vv[x1-1][y2]vv[x1-1][y1-1];ret[i][j]sum;}}returnret;}};// 本期内容就到这里啦如果对你有帮助请三连支持我是青云我们下期见^_~

相关新闻

最新新闻

Go语言SSTI与JWT伪造深度解析:从{{.}}泄露到Admin权限获取

Go语言SSTI与JWT伪造深度解析:从{{.}}泄露到Admin权限获取

Go语言SSTI与JWT伪造深度解析:从模板注入到权限提升实战1. 漏洞链构建原理剖析在Web安全领域,模板注入(SSTI)与JWT机制的结合利用正成为攻击者突破权限边界的新兴手段。当Go语言开发的Web应用存在模板注入漏洞时,攻击者往往能通过精心构造的P…

2026/7/9 10:41:54
Codex智能体框架:30分钟从技术创意到专利初稿的自动化撰写实践

Codex智能体框架:30分钟从技术创意到专利初稿的自动化撰写实践

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 如果你是一名开发者,或者对技术创新稍有了解,你大概率听过一个说法:AI 正在改变一切。但当你真正想…

2026/7/9 10:41:54
Claude Code教程 -04- Hooks 自动化触发

Claude Code教程 -04- Hooks 自动化触发

Claude Code教程 -04- Hooks(自动化触发) Hooks 的价值就在于:把这些动作从“ 你记得做” 变成 “系统自动做” ,并且可以做到“该阻断就阻断、该后台跑就后台跑、该提醒就提醒”。 Hooks是什么? Hooks 是 Claude Code…

2026/7/9 10:41:54
GLM不是大模型:广义线性模型glm.cmp计数建模避坑指南

GLM不是大模型:广义线性模型glm.cmp计数建模避坑指南

1. 这不是“模型调用失败”,而是统计建模逻辑的断层看到标题里“GLM 4.7两例初级错误”,你可能下意识想到:是不是某个大语言模型API调用出错了?是不是prompt写漏了标点?但我要先泼一盆冷水——这里的GLM根本不是智谱的…

2026/7/9 10:41:54
【红蓝攻防】攻防演练手把手教你写溯源技战法

【红蓝攻防】攻防演练手把手教你写溯源技战法

一 前言相信大家对于攻防演练,应该都不陌生了,等级分初级,中级跟高级。其中对于中级的要求,是除了基本的监测和研判外,必须还要会一定的应急跟溯源。我这里就跟大家分享针对于溯源技巧的思路梳理。源的根本目标初级防守…

2026/7/9 10:41:54
TMC7300与PIC18F4685实现高效有刷直流电机控制

TMC7300与PIC18F4685实现高效有刷直流电机控制

1. TMC7300与PIC18F4685的黄金组合:有刷直流电机控制方案解析 在工业自动化和小型机电设备领域,有刷直流电机因其结构简单、成本低廉和控制方便等优势,仍然是许多应用场景的首选。但传统驱动方案常面临效率低下、发热严重和速度波动等问题。T…

2026/7/9 10:36:54

月新闻