Ho trovato questa domanda intervista, e non riuscivo a trovare un algoritmo migliore di O (N^2 * P):Algoritmo intervista di puzzle
Dato un vettore di numeri naturali P (1,2 , 3, ..., P) ed un altro vettore di lunghezza N i cui elementi sono dal primo vettore, per sottosequenza più lungo del secondo vettore, in modo che tutti gli elementi sono distribuiti uniformemente (hanno la stessa frequenza).
Esempio: (1,2,3) e (1, 2,1,3,2,1,3,1,2,3, 1). La sottosequenza più lunga è nell'intervallo [2,10], perché contiene tutti gli elementi della prima sequenza con la stessa frequenza (1 appare tre volte, 2 tre volte e 3 tre volte).
La complessità tempo dovrebbe essere O (N * P).
La sottosequenza deve essere consecutiva? – svick
Sì, una sottosequenza V [i..j] è composta dagli elementi: V [i], V [i + 1], .. V [j]. – flowerpower