浅析RMQ问题 + 练习题总结(区间最值查询)

引言

最值查询RMQ,信手拈得俱天成(方便自己copy模板。。。)

RMQ概念

就是在一个给定的区间(不能修改)内,求任意 left 到 right 的这子区间内的最大值,对于这种问题,一般会用线段树或者ST表解决,但如果这个查询的次数极大,线段树就会显得乏力,所以就了解一下ST表的求解。

求解思路

用ST表求解这类问题,起建表时间 O(n*log(n)) 查询时间 O(1) ,速度挺不错的。

首先我们定一个数组 L[ i ][ j ] 表示从第 i 位开始往后 连续 2^{j} 个数的最大值

那么这个就会有两个部分,一个是从 i 到 i+2^{j-1}-1,另一个是 i+

posted @ 2019-05-24 14:14  Nomad_Joe_violet  阅读(16)  评论(0编辑  收藏  举报  来源