Die Herausforderung besteht darin, die kürzeste Implementierung zu schreiben , um die am längsten zunehmende Teilsequenz zu finden .
Beispiel : Sei S die Folge 1 5 7 1 8 4 3 5 [Länge von S = 8]
- Wir haben 1 Teilsequenz der Länge 0 [wird als ansteigend betrachtet]
- 6 Teilsequenzen der Länge 1 {1,5,7,8,4,3} [alle gelten als ansteigend]
- (7 * 8) / 2 Subsequenzen der Länge 2 [aber wir werden Duplikate entfernen], die zunehmenden Subsequenzen sind in starkem Schwarz.
{ 15,17 , 11, 18,14,13,57 , 51, 58 , 54,53,55,71, 78 , 74,73,75,84,83,85,43, 45,35 }
[Beachten Sie, dass wir nur an streng zunehmenden Teilsequenzen interessiert sind]
[Sie können die Reihenfolge der Elemente innerhalb der Sequenz nicht ändern , daher gibt es in der Beispielsequenz keine Teilsequenz [37].]
- Wir haben zunehmende Teilsequenzen der Länge 4, die 1578 beträgt, aber es gibt keine Teilsequenz der Länge 5, daher betrachten wir die Länge der am längsten zunehmenden Teilsequenz = 4.
Eingabe :
a 1 a 2 ... a N (Die Sequenz)
Alle Zahlen sind positive ganze Zahlen unter 10 3
N <= 1000
Ausgabe :
Eine ganze Zahl, die die Länge der am längsten ansteigenden Teilsequenz der Eingabesequenz angibt.
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
Ihr Code sollte rechtzeitig ausgeführt werden. Bitte testen Sie Ihren Code in diesem Fall, bevor Sie ihn hier einreichen (auch der Link enthält meine 290-Byte-C ++ 11-Lösung).
Sie können die Eingabe entweder aus einer Datei / stdin oder als Funktionsparameter übernehmen und die Ausgabe entweder in eine Datei / stdout drucken oder einfach den Wert zurückgeben, wenn Sie eine Funktion schreiben
Anzeigetafel
- Dennis CJam - 22
- isaacg Pyth - 26
- Howard GolfScript - 35
- stolzer Haskeller Haskell - 56
- Ray Python 3 - 66
- Histokrat Ruby - 67
- DLeh C # - 92
- YosemiteMark Clojure - 94
- faubiguy Python 3 - 113
function f(){...}) oder der inneren Funktion (nur ...) zählen? Sind anonyme Funktionen zulässig, wenn wir äußere Funktionen zählen?