如何在log(n)时间内在数组的任何范围内找到最大值?

Dan*_*mas 0 c++ algorithm indexed binary-search-tree

例如阵列:{1,5,2,3,2,10}

范围:0-1答案:5范围:2-4答案:3范围:0-5答案:10等

aio*_*obe 11

如果数组没有排序,那么就没有办法做你想要的了.

要找到最大值,您至少需要检查范围内的所有元素,这需要O(n).

如果您允许某种形式的数据预处理,那很容易.您可以使用答案构建一个n 2查找表.然后你可以在恒定时间内找到任何范围的最大值.