Zorluk En uzun artan alt soruyu bulmak için en kısa uygulamayı yazmaktır .
Örnek : S dizisi 1 5 7 1 8 4 3 5 [S uzunluğu = 8] olsun
- 0 uzunluğunda 1 alt dizimiz var [arttığını düşüneceğiz]
- 1 uzunluk altı 6 alt dizi {1,5,7,8,4,3} [hepsinin arttığı düşünülmektedir]
- (7 * 8) / 2 uzunluğunda 2 alt dizi [ancak kopyaları kaldıracağız], artan alt sıra güçlü siyah renktedir.
{ 15,17 , 11, 18,14,13,57 , 51, 58 , 54,53,55,71, 78 , 74,73,75,84,83,85,43, 45,35 }
[yalnızca kesinlikle artan alt sekanslarla ilgilendiğimizi unutmayın]
[ile sırasını değiştiremez dizisi içindeki elemanların, yani herhangi bir alt-dizisi [37], örneğin sırayla orada]
- 1578 olan 4 uzunluğunda artan alt dizilerimiz var, ancak 5 uzunluğunda bir alt dizi yok, bu yüzden en uzun artan alt dizinin = 4 uzunluğunu düşünüyoruz.
Giriş :
a 1 a 2 ... a N (Dizi)
tüm sayılar 10 3
N <= 1000'den küçük pozitif tamsayılardır
Çıktı :
Giriş dizisinin en uzun artan alt dizisinin uzunluğunu gösteren bir tamsayı.
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
Kodunuzun zamanında çalışması gerekir, lütfen buraya göndermeden önce kodunuzu bu durumda test edin (ayrıca bağlantı benim 290 bayt c ++ 11 çözümümü içerir)
Girdiyi bir dosya / stdin'den veya bir işlev parametresi olarak alabilir ve çıktıyı bir dosya / stdout'a yazdırabilir veya bir işlev yazarsanız değeri döndürebilirsiniz
Skor Kurulu
function f(){...}) veya iç fonksiyonun (sadece ...) baytlarını saymalıyız ? Dış işlevleri sayarsak, anonim işlevlere izin verilir mi?