【发布时间】:2013-03-12 01:46:39
【问题描述】:
A 是从1 到n 随机排列的整数数组。
我需要至少在日志时间内随机访问第一个 j 元素中的 ith 最大元素。
到目前为止,我想出的是一个n x n 矩阵M,其中(i, j) 位置的元素是第一个j 中最大的i。这给了我恒定时间随机访问,但需要n^2 存储。
通过构造,M 按行和列排序。此外,每一列与其相邻列的差异只有一个值。
谁能建议一种方法将M 压缩到n log(n) 空间或更好,log(n) 或更好的随机访问时间?
【问题讨论】:
-
可以给个样例输入输出吗?
-
这是一个非常有趣的问题,我正在考虑它:)
标签: algorithm data-structures language-agnostic