使用矩阵在O(1)时间内回答查询

时间:2014-09-27 21:18:32

标签: algorithm data-structures matrix

这是作业,我已经有了答案。我只是想了解这是什么样的,因为我无法想象它。

  

假设我们给出了n个值的序列x1,x2,...,xn并寻求   快速回答表格的重复查询:给定i和j,找到最小值   在xi ,. 。 。 ,xj。

问题是:

  

a)设计一个使用O(n ^ 2)空间并在O(1)中回答查询的数据结构   时间。

根据Skienna的维基页面,答案是

  

使用填充了两个索引处节点之间距离的nxn矩阵。

我知道n x n矩阵会给我们n ^ 2个空格,但我不明白这个矩阵是什么样的。

1 个答案:

答案 0 :(得分:1)

嗯......让我们举一个例子:

对于值:3 5 4 2

矩阵将是:

3 3 3 2
3 5 4 2
3 4 4 2
2 2 2 2

矩阵始终为symmetric:我们可以允许j < i为x j .. x i

这称为查找表。 (i,j)处的每个值等于min(x i .. x j )。这意味着,您预先计算正常函数将返回的值。