线段树?

线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。

使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,因此有时需要离散化让空间压缩。

什么是RMQ问题?

RMQ(Range Min/Max Query):

对于长度为n的数组A,回答若干询问RMQ(A,i,j)(i,j<=n-1)返回数组A中下标在i,j范围内的最小(大)值,即RMQ问题是指求区间最值的问题

解决方式:

  • 朴素算法:每查询一次为O(n)
  • ST算法:高效,以O(n log n)的预处理代价,换取O(1)的查询时性能