RANGE MINIUM/MAXIUM QUERY问题
RMQ问题旨在对于大量的询问,高效的返回一个区间中的最大值或最小值。RMQ为离线算法,对于一个长度为n的序列,预处理需要O(nlogn),查询只需要O(1),但不支持值的修改。RMQ的实现
RMQ的本质是动态规划,用一个二维数组d[i][j]来存储该序列以ai为首位2^j长度的序列中的最大/最小值,那么d[i][j]就可以由d[i][j-1]和d[i+2^(j-1)][j-1]推出,如图:
算法
原创
2016-02-28 18:00:34 ·
240 阅读 ·
0 评论