当我遇到这个问题时 - using two stacks to implement a queue,我想知道如何分析它的复杂性。
以this为例:
分析此类问题时的想法是什么?
答案 0 :(得分:0)
正如Dave L.在他的解释中所述,“每个元素将被推动两次并弹出两次,给予摊销的恒定时间操作”。这是因为每个需要将n个元素从一个堆栈移动到另一个堆栈的队列(需要O(n)时间)后面会出现n-1个队列,这个队列只需要O(1)时间。
因此,表达dequeue()
复杂性的一种方法是说它已经用O(1)的最佳cas和O(n)的最坏情况分摊了常数时间。