假设我们有一个很大的整数数组 A。我们想要回答许多查询,例如:
找到索引 0 和 100 之间的最小值
找到索引 4 和 90 之间的最小值
...
示例:A = {6, 1, 7, 5, 3}
索引 0 和 1 之间的最小值为 1
索引 2 和 3 之间的最小值为 5
索引 0 和 4 之间的最小值为 1
遍历每个查询的元素并找到最小值的明显方法在性能方面是不够的。我不知何故需要一次性存储所需的信息,然后在恒定时间内回答查询。所以算法不应该是二次的。需要比 O(N * M) 更好的东西。(N:数组大小,M:查询数)
我试过但找不到如何做到这一点。它一定是关于查找和存储一些总和并以某种方式使用它们的东西。有任何想法吗?谢谢阅读。
呼啦一阵风
饮歌长啸
慕容森
随时随地看视频慕课网APP
相关分类