Data una sequenza di numeri interi nell'intervallo da 1 a n. Ogni numero può apparire al massimo una volta. Lascia che ci sia un simbolo X nella sequenza che significa rimuovere l'elemento minimo dalla lista. Ci può essere un numero arbitrario di X nella sequenza. Esempio: 1,3,4, X, 5,2, X L'output è 1,2.
Dobbiamo trovare il modo migliore per eseguire questa operazione.
La soluzione che ho pensato è:
Analizza la sequenza da sinistra a destra e conta il numero di X che richiede il tempo O (n). Esegui l'ordinamento parziale e trova i k elementi più piccoli (k = numero di X) che impiega il tempo O (n + klogk) usando la mediana delle mediane.
C'è un modo migliore per risolvere questo problema usando la programmazione dinamica o in altro modo?