← OlimpiApp
Olimpico
Informatica · Strutture dati
Massimo numero di pop in un singolo inserimento (NGE)
Il seguente algoritmo calcola, per ogni elemento di un array, il prossimo elemento maggiore alla sua destra usando una pila (stack) di indici:
stack = [] # pila di INDICI, valori a[i] tenuti in ordine decrescente
for i from 0 to n-1:
while stack is not empty and a[stack.top] < a[i]:
stack.pop() # ogni pop conta come UNA operazione
stack.push(i)
return total_popsApplicandolo all'array $[8, 4, 9, 2, 7, 1, 10, 3, 6, 5]$, qual è il numero massimo di operazioni di pop eseguite in un singolo passo (cioè durante l'inserimento di un solo elemento) nel corso dell'intera esecuzione?
La tua risposta:
La tua risposta
Vanno bene sia 3,14 sia 3.14.