La sfida è scrivere l' implementazione più breve per trovare la sottosequenza crescente più lunga .
Esempio : Sia S la sequenza 1 5 7 1 8 4 3 5 [lunghezza di S = 8]
- Abbiamo 1 sotto-sequenza di lunghezza 0 [la considereremo in aumento]
- 6 sotto-sequenze di lunghezza 1 {1,5,7,8,4,3} [sono considerate tutte in aumento]
- (7 * 8) / 2 sotto-sequenze di lunghezza 2 [ma rimuoveremo i duplicati], i sotto-seq crescenti sono in nero forte.
{ 15,17 , 11, 18,14,13,57 , 51, 58 , 54,53,55,71, 78 , 74,73,75,84,83,85,43, 45,35 }
[nota che ci interessa solo sub-sequenze in costante aumento]
[non è possibile modificare l'ordine degli elementi all'interno della sequenza, quindi non vi è alcuna sottosequenza [37] nella sequenza di esempio]
- Abbiamo sub-sequenze crescenti di lunghezza 4 che è 1578, ma non ci sono sotto-sequenze di lunghezza 5, quindi consideriamo la lunghezza della sub-sequenza crescente più lunga = 4.
Input :
a 1 a 2 ... a N (La sequenza)
tutti i numeri sono numeri interi positivi inferiori a 10 3
N <= 1000
Uscita :
Un numero intero che indica la lunghezza della sotto-sequenza crescente più lunga della sequenza di input.
sample input(1)
1 2 4 2 5
sample output(1)
4
sample input(2)
1 5 7 1 8 4 3 5
sample output(2)
4
Il tuo codice dovrebbe essere eseguito in modo tempestivo, prova il tuo codice su questo caso prima di inviarlo qui (anche il link contiene la mia soluzione c ++ 11 da 290 byte)
Puoi prendere l'input da un file / stdin o come parametro di funzione e puoi stampare l'output in un file / stdout o semplicemente restituire il valore se scrivi una funzione
Tabellone dei punteggi
- Dennis CJam - 22
- isaacg Pyth - 26
- Howard GolfScript - 35
- orgoglioso haskeller Haskell - 56
- Ray Python 3 - 66
- istocratico Ruby - 67
- DLeh C # - 92
- YosemiteMark Clojure - 94
- faubiguy Python 3 - 113
function f(){...}) o della funzione interna (solo ...)? Se contiamo le funzioni esterne, sono consentite le funzioni anonime?