2
私は多くのコーディングのインタビューの質問のいくつかを行ってきました。 私は、Pythonで2つのスタックを使ってキューを実装することについて不思議でした。私は両方のデータ構造を理解するために2つのスタックを持つキューを実装するアルゴリズムの質問に取り組んでいます。 私は以下があります:2スタックのPythonでキューを実装し、実行時間を分析してください
class QueueTwoStacks:
def __init__(self):
self.in_stack = []
self.out_stack = []
def enqueue(self, item):
self.in_stack.append(item)
def dequeue(self):
if len(self.out_stack) == 0:
# Move items from in_stack to out_stack, reversing order
while len(self.in_stack) > 0:
newest_in_stack_item = self.in_stack.pop()
self.out_stack.append(newest_in_stack_item)
# If out_stack is still empty, raise an error
if len(self.out_stack) == 0:
raise IndexError("Can't dequeue from empty queue!")
return self.out_stack.pop()
はこの1つのランタイム分析とは何ですか?
mm関数呼び出しでO(m)O(m)ランタイムを取得できるのはなぜなのですか?
私はスタック実装を前提としていますが、O(1)O(1)時間のプッシュとポップを与えますか?
ご迷惑をおかけして申し訳ありません。ありがとうございました。