Há um "algoritmo de classificação", às vezes chamado classificação Stalin, no qual, para classificar uma lista, você simplesmente remove elementos da lista até que ela seja classificada em ordem crescente. Por exemplo, a lista
[1, 2, 4, 5, 3, 6, 6]
Quando "classificado" usando a classificação Stalin se torna
[1, 2, 4, 5, 6, 6]
Os três foram removidos porque estavam fora de ordem.
Agora, obviamente, existem muitas maneiras de remover elementos para classificar uma lista. Por exemplo, qualquer lista com menos de dois elementos deve ser classificada; portanto, basta remover elementos suficientes cegamente, sempre podemos classificar uma lista. Como esse é o caso, nos preocupamos apenas com o resultado mais longo possível de um tipo de Stalin.
Sua tarefa será pegar uma lista de números inteiros positivos e gerar o comprimento da lista classificada mais longa (crescente) que pode ser alcançada removendo elementos da lista original. É o comprimento da sub-lista classificada mais longa (possivelmente não contígua).
As listas ordenadas podem ter o mesmo elemento mais de uma vez em uma linha. Você não precisa oferecer suporte à lista vazia, a menos que seu próprio programa esteja vazio.
Pontuação
Sua resposta será pontuada pelo tamanho de sua própria classificação Stalin mais longa possível. Os programas serão interpretados como uma sequência de bytes em vez de caracteres, e sua ordem será a ordem natural que surgir ao interpretar os bytes como números. Pontuações mais baixas são melhores.
Este não é um código de golfe
Aqui está uma ferramenta simples para ajudá-lo a obter suas respostas.
Casos de teste
[1, 2, 4, 5, 3, 6, 6] -> 6
[19, 2] -> 1
[3, 3, 4, 3] -> 3
[10] -> 1
[1, 2, 4, 9] -> 4
[1, 90, 2, 3, 4, 5] -> 5
[1, 90, 91, 2, 3, 4, 5] -> 5
fonte
Respostas:
Python 2 , comprimento
1412109A saída é via código de saída.
Experimente online!
Como funciona
A todo momento, a matrizL controla os subarrays classificados mais longos encontrados até agora; L[a−1] é o comprimento do mais longo que termina com a .
Inicialmente, não processamos os elementos de uma matriz, portantoL consiste inteiramente em zeros.
fonte
Wolfram Language (Mathematica) , pontuação 9
Experimente online!
fonte
Perl 6 , 9 pontos
Experimente online!
fonte
Haskell , Pontuação
87, 48 bytesExperimente online!
A sub-lista classificada mais longa é
fonte
Gelatina , comprimento
42Experimente online!
Bytes na página de códigos de Jelly
Como funciona
fonte
Pitão, pontuação
32 (7bytes)Guardou um ponto graças ao Anders Kaseorg.
Experimente aqui
Explicação
fonte
leSI#y
scores 2.Stax , 4 comprimento máximo tipo stalin
Execute e depure
Funciona assim.
fonte
R , Pontuação
1511,7262 bytesExperimente online!
Portos Resposta de Python de Dennis para R.
fonte
Brachylog , comprimento 2 (4 bytes)
Experimente online!
Uma resposta que compensa ser tão concisa por não ser muito mais curta.
(
08 03 80 6C
na página de códigos de Brachylog)fonte
►LSnmOṖ
inventei Husk, mas sua pontuação (pelo menos no tamanho) é muito ruim para incomodar a postagem ...