<分区>
例如数组:{1, 5, 2, 3, 2, 10}
范围:0-1 答案:5 范围:2-4 答案:3 范围:0-5 答案:10 等等
<分区>
例如数组:{1, 5, 2, 3, 2, 10}
范围:0-1 答案:5 范围:2-4 答案:3 范围:0-5 答案:10 等等
最佳答案
如果数组未排序,则无法执行您要求的操作。
要找到最大值,您至少需要检查范围内的所有元素,这需要 O(n)。
如果您允许对数据进行某种形式的预处理,那就很容易了。您可以只构建一个包含答案的 n2 查找表。然后您可以在常数时间内找到任何范围的最大值。
关于c++ - 如何在 log(n) 时间内找到数组任意范围内的最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9467247/