在列表中查找所有可能子范围的最小值的算法

标签 algorithm

假设我有一个列表:

L = [2,5,1,8,3,7,9,4,6,10] 或类似的东西

而且我希望能够创建一个二维列表/数组/等来描述所有可能范围的最小值(例如,最小值[0][3] 表示查看元素 0 到 3 时的最小值)。

例如:

Range(0 through 3) = minimum is 1
Range(5 through 5) = minimum is 7
Range(3 through 8) = minimum is 3

等等,对于所有可能的范围。有没有比 n^2 次更好的方法?

最佳答案

为它建立一个线段树。查询时间为 O(logn)。 http://en.wikipedia.org/wiki/Segment_tree

关于在列表中查找所有可能子范围的最小值的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9676494/

相关文章:

arrays - 查找数组中总和为零的所有数字

python - Django 模型 : Keep track of activity through related models?

c++ - 使用 32 位无符号整数乘以 64 位数字的算法

sql-server - 从数据库自动完成地址的标准方法是什么?

algorithm - 在无根树中查找多个 LCA

php - 检测整数是否可以写成给定整数的总和

c# - 使用小数类型处理比率的算法

mysql - 使用 Rails 和 mysql 的具有多个下车点、目的地的机票预订算法

C 中的计数排序显然有效,但二进制搜索无效

algorithm - 对于相似图像有什么好的最近邻算法吗?