【发布时间】:2012-06-27 09:01:45
【问题描述】:
我刚刚接受了一次软件面试。其中一个问题是以高度优化的方式设计具有三种方法 insert、delete 和 getRandom 的任何数据结构。面试官让我想出一种数据结构的组合来设计一个新的。无论如何都可以设计插入,但对于随机和删除,我需要获取特定元素的位置。他给了我一个提示,让我思考一下排序所需时间最短的数据结构。
欢迎任何回答或讨论....
【问题讨论】:
-
getRandom应该返回一个随机元素还是随机访问?
-
typedef std::deque<sometype> datastructure_t;插入、随机访问、删除,全部覆盖。您可能不需要比 O(1) 更快的速度。 -
应该返回一个随机元素..
-
@Damon:双端队列具有“中间元素的线性时间插入和删除”(sgi.com/tech/stl/Deque.html)。因此,如果需要从数据结构中删除任意元素,它将是 O(n)。
标签: optimization data-structures