Menu
CoddyTech

Min Stack

MittelStackpython iconjava iconcpp iconc iconjs icon+10

Entwirf einen Stack, der neben den üblichen Operationen push, pop und top auch den kleinsten darin enthaltenen Wert mit getMin ausgeben kann. Jede der vier Operationen muss in O(1)-Zeit ausgeführt werden.

Du erhältst die Operationen der Reihe nach als ops, wobei args[i] den Wert für ein push und bei allen anderen Operationen 0 enthält. Führe sie auf einem Stack aus, der anfangs leer ist, und gib für jede Operation einen String zurück: "null" für push und pop sowie die Zahl als Text für top und getMin.

Funktion

minStackOps(ops: string-array, args: integer-array) → string-array
opsstring-array
die Operationen in der Reihenfolge, in der sie ausgeführt werden
argsinteger-array
der Wert für jeden push, 0 für jede andere Operation
Gibt zurückstring-array
eine Antwort pro Operation, als Text

Einschränkungen

  • 1 ≤ ops.length ≤ 3000
  • args.length == ops.length
  • Jedes ops[i] ist push, pop, top oder getMin.
  • -231+1 ≤ args[i] ≤ 231-1 für einen Push und args[i] == 0 für jede andere Operation.
  • pop, top und getMin werden nur aufgerufen, wenn der Stack mindestens einen Wert enthält.

Beispiele

Eingabe
ops = ["push", "push", "push", "getMin", "pop", "top", "pop", "getMin"]args = [4, 1, 7, 0, 0, 0, 0, 0]
Ausgabe
["null", "null", "null", "1", "null", "1", "null", "4"]
Erklärung
Der Stapel enthält von unten nach oben 4, 1 und 7, also ist 1 der kleinste Wert. Wenn 7 entfernt wird, liegt 1 oben. Wird auch 1 entfernt, bleibt nur 4 übrig, sodass das Minimum wieder 4 beträgt.

lock icon+16 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Kannst du eine First-in-first-out-Warteschlange erstellen, die ihr Minimum auch in amortisierter O(1)-Zeit meldet?

Code zurücksetzen
def minStackOps(ops, args):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Fall 3

Eingabe

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

Erwartet

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