O desafio é escrever a implementação mais curta para encontrar a subsequência crescente mais longa .
Exemplo : Seja S a sequência 1 5 7 1 8 4 3 5 [comprimento de S = 8]
- Temos 1 sub-sequência de comprimento 0 [considerará crescente]
- 6 sub-seqüências de comprimento 1 {1,5,7,8,4,3} [todas elas são consideradas crescentes]
- (7 * 8) / 2 sub-sequências de comprimento 2 [mas removeremos duplicatas], as sub-sequências crescentes estão em preto forte.
{ 15,17 , 11, 18,14,13,57 , 51, 58 , 54,53,55,71, 78 , 74,73,75,84,83,85,43, 45,35 }
[observe que apenas estamos interessados em sub sequências estritamente crescentes]
[você não pode alterar a ordem dos elementos dentro da sequência, portanto não há sub-sequência [37] na sequência de exemplo]
- Temos sub-sequências crescentes de comprimento 4, que são 1578, mas não há sub-sequência de comprimento 5, portanto, consideramos o comprimento da sub-sequência crescente mais longa = 4.
Entrada :
a 1 a 2 ... a N (A sequência)
todos os números são números inteiros positivos menores que 10 3
N <= 1000
Saída :
Um número inteiro que denota o comprimento da subseqüência crescente mais longa da sequência de entrada.
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
Seu código deve ser executado em tempo hábil . Teste-o neste caso antes de enviá-lo aqui (também o link contém minha solução c ++ 11 de 290 bytes)
Você pode pegar a entrada de um arquivo / stdin ou como um parâmetro de função e pode imprimir a saída em um arquivo / stdout ou simplesmente retornar o valor se escrever uma função
Placar
- Dennis CJam - 22
- isaacg Pyth - 26
- Howard GolfScript - 35
- orgulhoso haskeller Haskell - 56
- Ray Python 3-66
- histocrata Ruby - 67
- DLeh C # - 92
- YosemiteMark Clojure - 94
- faubiguy Python 3 - 113
function f(){...}
) ou da função interna (apenas ...
)? Se contamos funções externas, são permitidas funções anônimas?