Contents
  1. 1. 1.什么是树状数组?
  2. 2. 2.树状数组可以解决什么问题
  3. 3. 3.树状数组和线段树的区别在哪里
  4. 4. 4.树状数组的优点和缺点

维护前缀和的方式,在需要多次更新前缀和时比普通数组高效。O(logN)的查询以及更新时间复杂度

1.什么是树状数组?

顾名思义,就是用数组来模拟树形结构呗。那么衍生出一个问题,为什么不直接建树?答案是没必要,因为树状数组能处理的问题就没必要建树。和Trie树的构造方式有类似之处。

2.树状数组可以解决什么问题

可以解决大部分基于区间上的更新以及求和问题。

3.树状数组和线段树的区别在哪里

树状数组可以解决的问题都可以用线段树解决,这两者的区别在哪里呢?树状数组的系数要少很多,就比如字符串模拟大数可以解决大数问题,也可以解决1+1的问题,但没人会在1+1的问题上用大数模拟。

4.树状数组的优点和缺点

修改和查询的复杂度都是O(logN),而且相比线段树系数要少很多,比传统数组要快,而且容易写。

缺点是遇到复杂的区间问题还是不能解决,功能还是有限。

详见:

https://www.cnblogs.com/xenny/p/9739600.html

Contents
  1. 1. 1.什么是树状数组?
  2. 2. 2.树状数组可以解决什么问题
  3. 3. 3.树状数组和线段树的区别在哪里
  4. 4. 4.树状数组的优点和缺点