问题:

  RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,也就是说,RMQ问题是指求区间最值的问题。

dp思想:

  dp[i][j]中存储的是从第j个数开始的2i个数最大的数。(如下图)

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 RMQ(区间最值问题) 随笔

  dp[2][1]表示的是1到1+22-1中最大的数。即下表1-4中最大的数。

  如果要求1-6中最大的数,可以先将区间拆成两个2x长度的字串,分别求字串的最大值。1-6可以拆分成1-4和3-6这两个序列长度都为4.所以直接比较dp[2][1]和dp[2][3]即可。

dp代码:

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄