当前位置: 首页 > news >正文

[优选算法专题四.前缀和——NO.31~32 连续数组、矩阵区域和]

题目链接:

525. 连续数组

题目描述:

题目解析:

核心思路详解
  1. 问题转换原问题是 "找到 0 和 1 数量相等的最长连续子数组",通过将 0 转换为 - 1,1 保持为 1,问题等价于 "找到和为 0 的最长连续子数组"(因为 0 和 1 数量相等时,-1 和 1 的总和为 0)。

  2. 前缀和的应用设前缀和sum[i]为数组前i个元素的和(按上述转换规则计算)。对于子数组[j+1, i],其和为sum[i] - sum[j]。若该子数组和为 0,则sum[i] = sum[j]

  3. 哈希表优化哈希表记录每个前缀和第一次出现的索引。当遍历到索引i时,若sum[i]已在哈希表中存在(设第一次出现索引为j),则子数组[j+1, i]的和为 0,其长度为i - j。通过这种方式,可在 O (1) 时间内查找历史前缀和,避免暴力枚举的 O (n²) 复杂度。

  4. 初始化处理哈希表初始化为{0: -1},是为了处理从数组起始位置(索引 0)开始的子数组。例如,若sum[2] = 0,则子数组[0, 2]的长度为2 - (-1) = 3

时间与空间复杂度
  • 时间复杂度:O (n),其中 n 为数组长度,只需遍历一次数组,哈希表操作平均为 O (1)。
  • 空间复杂度:O (n),最坏情况下哈希表需存储 n 个不同的前缀和。

该算法通过巧妙的问题转换和前缀和 + 哈希表的组合,高效解决了最长 0-1 相等子数组问题。


题目链接:

1314. 矩阵区域和

题目解析:

核心思路详解
  1. 问题分析对于矩阵中的每个元素(i,j),需要计算以其为中心、上下左右各扩展k个单位的矩形区域内所有元素的和(若扩展超出矩阵边界,则以矩阵边界为限)。若直接暴力计算,每个元素的区域和需 O (k²) 时间,整体复杂度为 O (mn・k²),效率极低。

  2. 二维前缀和的作用二维前缀和数组dp可以将任意矩形区域的和的计算优化到 O (1) 时间。其定义为:dp[i][j] 表示矩阵中从左上角(0,0)到右下角(i-1,j-1)的矩形区域内所有元素的和(dp比原矩阵多一行一列,从 1 开始索引,方便处理边界)。

    构建前缀和的公式:dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1] + mat[i-1][j-1](解释:上方区域和 + 左方区域和 - 重叠的左上角区域和 + 当前元素值)

  3. 区域和计算对于元素(i,j),其k半径区域的边界为:

    • 上边界:max(0, i - k)
    • 下边界:min(m-1, i + k)
    • 左边界:max(0, j - k)
    • 右边界:min(n-1, j + k)

    转换到前缀和数组dp的索引(需 + 1)后,利用前缀和公式计算该区域和:区域和 = dp[x2][y2] - dp[x1-1][y2] - dp[x2][y1-1] + dp[x1-1][y1-1]

时间与空间复杂度
  • 时间复杂度:O (mn)。构建前缀和数组需 O (mn),计算每个元素的区域和也需 O (mn),整体为线性时间。
  • 空间复杂度:O (mn)。需要存储前缀和数组dp和结果数组ret,均为m×n大小。

该算法通过二维前缀和的预处理,将原本复杂的区域和计算简化为常数时间操作,大幅提升了效率,是处理矩阵区域和问题的经典方法。

http://www.dtcms.com/a/521162.html

相关文章:

  • 事业单位网站备案流程谷歌做不做网站
  • 做家居网站企业建设网站的目标
  • 福田网站改版安徽六安特产
  • XML 核心知识点
  • 图片类网站模板自己做网站是用什么软件
  • 全国通用工会考试真题及答案解析
  • 东莞寮步镇网站做网站需要自己研发吗
  • QLExpress 解析方程式
  • AI编程:结合MCP实现数据库连接与高效开发
  • 在线做网站有哪些平台wordpress二级
  • 怎样制作自己公司的网站企业在建设自己网站时
  • Flink DatastreamAPI详解(二)
  • 丢盖网logo设计免费官网合肥网站建设优化
  • Android View, SurfaceView, GLSurfaceView 的区别
  • 数据结构---优先级队列(堆)
  • PHP反序列化漏洞
  • dw做的网站怎么发布到网上wordpress wamp
  • 信用门户网站建设方案网站建设空间申请
  • RAG性能提升:从查询优化到范式演进的系统性路径
  • 响应式网站开发方法游戏官网平台
  • 网络管理员教程(初级)第六版--第4章 Web网站建设
  • 网站导入链接创建
  • 企业网站最重要的访问对象是Vantage wordpress主题
  • SpringBoot-数据访问之Druid
  • 算法 vs 社区:Pump 与 FourMeme 的增长机制之战
  • 「PPG信号处理——(2)脉搏波信号刺激前后RMSSD心率变异性研究」2025年10月23日
  • 学网站开发可以创业吗学校网站英文
  • 哈尔滨企业自助建站php做的网站手机能看到
  • Ubuntu关于串口的操作
  • 电子商务网站建设与维护考试提供郑州网站建设