【发布时间】:2020-08-28 00:52:49
【问题描述】:
我被要求设计一个数据结构,它的作用就像一个堆栈,大小不受限制,它将支持以下方法,并具有给定的运行时限制。
push(s) - 将 s 推入数据结构 - O(1) pop() - 移除并返回最后插入的元素 O(1) middle() - 按插入顺序返回索引为 n/2 的元素(不删除),其中 n 是数据结构中元素的当前数量。 - O(1) peekAt(k) - 按插入顺序返回第k个元素(栈底为k=1) - O(log(k))
这 3 种方法将使用链表,但我应该如何实现 peekAt(k) 方法。
谢谢。
【问题讨论】:
-
最好贴一些代码或尝试过的东西。
标签: data-structures linked-list time-complexity