【发布时间】:2014-10-30 01:19:54
【问题描述】:
我想知道是否有一种方法可以根据需要使用尽可能多的队列来实现堆栈,从而在 O(1) 中推送和弹出数据。 如果没有任何 O(1) 算法,那么最好的复杂度是多少?
【问题讨论】:
-
O(1) 是什么意思?
-
我的意思是算法所花费的时间不应该依赖于栈的大小。它必须是恒定的
-
算法做什么用的时间?
-
我不这么认为。你为什么想要?直觉上,我倾向于说 O(n) 是最好的情况。
-
好吧,如果您可以使用数组实现 O(1) 堆栈,那么您也可以使用 1 元素队列的数组,但这毫无意义。你能更好地定义问题吗?是否允许使用数组或变量,或者解决方案必须完全由队列组成?
标签: algorithm stack queue time-complexity