数据结构
文章平均质量分 81
一些常见的数据结构笔记
陈煜晗
我想变强
展开
-
【植树造林】十株线段树
线段树题集线段树问题的一般思路:1:单点修改还是区间修改 ----> 是否需要用到懒标记2:维护什么信息? 能不能由左右儿子计算得到?1:最大值可以对这列数进行两种操作:添加操作:向序列后添加一个数,序列长度变成 n+1; 询问操作:询问这个序列中最后 L 个数中最大的数是多少。程序运行的最开始,整数序列为空。 一共要对整数序列进行 m 次操作。写一个程序,读入操作的序列,并输出询问操作的答案。1:单点修改2:维护最大值 ---->可以由左右子树计算得到#include原创 2021-08-01 17:35:36 · 365 阅读 · 1 评论 -
【算法笔记】树状数组
树状数组(Binary Index Tree, BIT)支持两种操作,时间复杂度均为O(logn):单点修改:更改数组中一个元素的值区间查询:查询一个区间内所有元素的和树状数组的引入对于普通数组而言,单点修改的时间复杂度是O(1),但区间求和的复杂度是O(n)对于前缀和而言,区间求和的复杂度是O(1),但单点修改的时间复杂度是O(n)在单点修改与区间查询比例为1:K的要求下普通数组的时间复杂度为 (n+K*O(n)) / (K+1) 综合复杂度为O(n)前缀和的时间复杂度为 (O(n)+K原创 2021-04-03 12:07:01 · 185 阅读 · 0 评论 -
【算法笔记】线段树
线段树(Segment Tree) 是一个优雅的数据结构。他能用O(logn)的时间复杂度实现 单点修改 区间查询 区间修改 ,但这些操作并非线段树的操作上线,原创 2021-04-05 00:22:02 · 187 阅读 · 0 评论