Tantangannya adalah untuk menulis implementasi terpendek untuk menemukan peningkatan berikutnya terpanjang .
Contoh : Misalkan S adalah urutan 1 5 7 1 8 4 3 5 [panjang S = 8]
- Kami memiliki 1 sub-urutan panjang 0 [akan menganggapnya meningkat]
- 6 sub-urutan panjang 1 {1,5,7,8,4,3} [semuanya dianggap meningkat]
- (7 * 8) / 2 sub-urutan panjang 2 [tetapi kami akan menghapus duplikat], peningkatan sub-seq berwarna hitam pekat.
{ 15,17 , 11, 18,14,13,57 , 51, 58 , 54,53,55,71, 78 , 74,73,75,84,83,85,43, 45,35 }
[perhatikan bahwa kami hanya tertarik pada peningkatan sub-urutan]
[Anda tidak dapat mengubah urutan elemen di dalam urutan, sehingga tidak ada sub-urutan [37] dalam contoh urutan]
- Kami memiliki sub-urutan panjang 4 yang meningkat yaitu 1578, tetapi tidak ada sub-urutan panjang 5, jadi kami mempertimbangkan panjang sub-urutan terlama yang meningkat = 4.
Masukan :
a 1 a 2 ... a N (Urutan)
semua angka adalah bilangan bulat positif kurang dari 10 3
N <= 1000
Keluaran :
Satu bilangan bulat yang menunjukkan panjang sub-urutan terpanjang dari urutan 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
Kode Anda harus berjalan tepat waktu, silakan uji kode Anda pada kasus ini sebelum mengirimkannya di sini (juga tautannya berisi solusi c ++ 11 290 byte saya)
Anda dapat mengambil input dari file / stdin atau sebagai parameter fungsi dan Anda dapat mencetak output ke file / stdout atau hanya mengembalikan nilai jika Anda menulis fungsi
Papan Skor
- Dennis CJam - 22
- isaacg Pyth - 26
- Howard GolfScript - 35
- bangga haskeller Haskell - 56
- Ray Python 3 - 66
- Ruby histokrat - 67
- DLeh C # - 92
- YosemiteMark Clojure - 94
- faubiguy Python 3 - 113
function f(){...}) atau fungsi dalam (adil ...)? Jika kita menghitung fungsi luar, apakah fungsi anonim diizinkan?