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

LeetCode 二维树状数组题解

LeetCode 二维树状数组题解

题目描述

实现一个二维树状数组,支持以下操作:

  1. 更新:更新某个位置的值
  2. 查询:返回某个子矩阵的元素和

解题思路

方法:二维树状数组

思路

  • 将一维树状数组扩展到二维。
  • 每个节点存储一个一维树状数组。

复杂度分析

  • 时间复杂度:O(log n * log m)。
  • 空间复杂度:O(n * m)。

代码实现

class FenwickTree2D: def __init__(self, m, n): self.m = m self.n = n self.tree = [[0] * (n + 1) for _ in range(m + 1)] def update(self, x, y, delta): i = x while i <= self.m: j = y while j <= self.n: self.tree[i][j] += delta j += j & (-j) i += i & (-i) def query(self, x, y): result = 0 i = x while i > 0: j = y while j > 0: result += self.tree[i][j] j -= j & (-j) i -= i & (-i) return result def range_query(self, x1, y1, x2, y2): return self.query(x2, y2) - self.query(x1 - 1, y2) - self.query(x2, y1 - 1) + self.query(x1 - 1, y1 - 1) # 测试 def test_fenwick_tree_2d(): ft = FenwickTree2D(3, 3) ft.update(1, 1, 1) ft.update(2, 2, 2) print(ft.range_query(1, 1, 2, 2)) # 输出:3 if __name__ == "__main__": test_fenwick_tree_2d()

总结

二维树状数组是一维树状数组的扩展,可以高效地处理二维区域的查询和更新操作。

http://www.jsqmd.com/news/816503/

相关文章:

  • 2026年义乌地板选购指南:实木地板与工厂直营深度评测 | 义乌地板批发实木三层实木多层木地板工厂直供15年超长质保 - 企业品牌优选推荐官
  • Python学习之包管理:pip + virtualenv(及 conda)
  • 叛逆期不是“麻烦期”:是孩子建立自我的关键期
  • 抖音图片怎么去水印文字?2026实测去水印文字方法+在线工具全整理
  • PS3游戏更新下载器:从索尼官方服务器获取游戏补丁的完整指南
  • Python 开发者如何通过 OpenAI 兼容协议快速接入 Taotoken
  • 群晖DSM 7.2.2视频解决方案:一键恢复Video Station完整功能
  • 2026年国内GEO服务商怎么选?这家百度系团队凭硬核技术连斩四项权威大奖,值得重点关注 - 深度智识库
  • 多FPGA原型验证:ASIC设计的关键技术与实践
  • VirtualWife虚拟数字人部署实战:从架构解析到私有化部署全攻略
  • 好用的青岛X射线探伤机服务商
  • 计算机组成原理期末救急:Cache地址划分(offset/index/tag)保姆级解题步骤
  • 标准化运营轻食加盟怎么选?2026热门品牌对比测评 - 品牌种草官
  • Cadence Allegro 17.2 PCB设计实战:从约束管理器到完成布局布线的保姆级避坑指南
  • 2026 网络推广平台综合测评:谁是 AI 时代企业营销增长的最优解? - 博客湾
  • LeetCode 树状数组应用题解
  • ARM系统寄存器ERXADDR解析与错误处理机制
  • BetterNCM安装器:让网易云音乐体验升级的智能管家
  • 城市移动机器人定位:单目视觉+低等级IMU+车轮里程计融合方案
  • 十六年技术沉淀,西恩士为何能成为 AI 液冷检测领域的破局者? - 工业干货社
  • 平移门电机厂家怎么选?专业选购指南帮你避坑 - 资讯速览
  • 杭州宝珀腕表抛光注意什么事项?五十噚/6654表壳划痕修复,别让“翻新”变“毁容”! - 亨得利官方维修中心
  • 展厅展览工程口碑好服务商
  • 如何构建个人B站视频库:BilibiliDown完整解决方案
  • 江苏定做柔性大门厂家哪个质量好 - 资讯速览
  • 崩坏星穹铁道模拟宇宙自动化终极指南:轻松解放双手刷取资源
  • 告别激活烦恼:手把手教你用vlmcsd在Windows Server上搭建自己的KMS服务器(含完整密钥表)
  • hermes agent工具如何对接taotoken多模型聚合平台
  • 要帮助孩子管理情绪
  • 选择Token Plan套餐在长期项目中带来的成本可控感受