Menu
CoddyTech

Min Stack

ふつうスタックpython iconjava iconcpp iconc iconjs icon+10

通常のpush、pop、topに加えて、保持している最小値をgetMinで返せるスタックを設計してください。4つの操作はそれぞれO(1)時間で実行できなければなりません。

操作は順番にopsとして与えられます。args[i]には、pushの場合は値が、それ以外のすべての操作では0が格納されています。空の状態から始まる1つのスタックに対して操作を実行し、各操作につき1つの文字列を返してください。pushとpopでは"null"を、topとgetMinでは数値をテキストとして返します。

関数

minStackOps(ops: string-array, args: integer-array) → string-array
opsstring-array
実行される順序での操作
argsinteger-array
各 push の値、それ以外のすべての操作では 0
戻り値string-array
操作ごとに1つの回答をテキストとして

制約

  • 1 ≤ ops.length ≤ 3000
  • args.length == ops.length
  • 各ops[i]はpush、pop、topまたはgetMinです。
  • -231+1 ≤ args[i] ≤ 231-1 の場合は push、その他の操作の場合は args[i] == 0。
  • pop、top、getMinは、スタックに少なくとも1つの値が格納されている場合にのみ呼び出されます。

例

入力
ops = ["push", "push", "push", "getMin", "pop", "top", "pop", "getMin"]args = [4, 1, 7, 0, 0, 0, 0, 0]
出力
["null", "null", "null", "1", "null", "1", "null", "4"]
説明
スタックには下から順に 4、1、7 が格納されているので、最小値は 1 です。7 をポップすると、1 が一番上に残ります。さらに 1 をポップすると 4 だけが残るため、最小値は 4 に戻ります。

lock icon提出時に隠しテスト+16件

challenge icon

発展問題

償却 O(1) 時間で最小値も報告する、先入れ先出しキューを実装できますか?

コードをリセット
def minStackOps(ops, args):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

ops = ["push", "push", "push", "getMin", "pop", "top", "pop", "getMin"]
args = [4, 1, 7, 0, 0, 0, 0, 0]

期待値

["null", "null", "null", "1", "null", "1", "null", "4"]