leetcode二维数组 segment tree 段树
leetcode二维数组为什么要分段树?也称为区间树也称为锦标赛树用于运行范围总和查询即给定范围内所有数字的总和Prefix sum用于获取范围和查询如果输入数组不断发生变异,则前缀总和方法效果不佳当输入频繁发生变异时使用段树也用于运行范围最小查询构建Segment树使用归并排序的分区算法将数组划分为片段分区后,我们将从叶子返回值到父段树将被构建如下使用数组存储段树,类似于Heap构建段树构造线段树的算法段树理论查找范围总和有三种重叠类型查找范围和流查找范围和算法更新操作时间复杂度比较回顾段树段树是二叉树树底层的节点对应数组元素其他节点包含处理范围查询所需的信息最小范围查询的段树在创建段树时获得最小值而不是求和在运行range min查询时使用minimum而不是sum而不是差异,在运行更新时使用最小值二维段树|子矩阵和给定一个矩形矩阵M[0…n-1][0…m-1],并要求查询找到一些子矩形M[a…b][e…f]上的总和/最小值/最大值,如以及修改单个矩阵元素的查询(即M[x] [y] = p
用户评论