Informatica · Strutture dati
Ampiezza minima di finestra per scendere sotto una soglia
Per calcolare il massimo di ogni finestra scorrevole di ampiezza $k$ su un array, si usa una coda a due estremità (deque) di indici, mantenuta sempre con i valori corrispondenti in ordine decrescente: per ogni nuovo elemento si rimuovono dal fondo della deque tutti gli indici il cui valore è $\le$ del nuovo elemento (perché non potranno mai più essere il massimo di nessuna finestra futura), poi si inserisce il nuovo indice in fondo; infine si rimuove dalla testa l'indice se è uscito dalla finestra corrente. Sia $T(k)$ il numero totale di rimozioni (testa+fondo, sommate su tutta l'esecuzione) ottenuto applicando l'algoritmo con ampiezza di finestra $k$.
Si applica l'algoritmo all'array $[11, 12, 10, 3, 9, 8, 1, 7, 6, 5, 2, 4]$ ($n=12$), calcolando $T(k)$ per $k=2,3,\dots,11$. Qual è il più piccolo valore di $k$ per cui $T(k) \le 6$?
La tua risposta:
La tua risposta
Vanno bene sia 3,14 sia 3.14.