O desafio
Crie uma função que obtenha uma matriz de números e subtraia de cada elemento o elemento mais baixo da matriz que ainda não foi subtraído de outro.
- Depois de usar o valor mais baixo, ele não pode ser usado novamente.
- Os números na matriz são números decimais e não necessariamente números inteiros.
Exemplo:
Input: [6, 4, 7, 8, 9, 2, 1, 4]
Next lowest value: Output:
[6, 4, 7, 8, 9, 2, 1, 4] [6, 4, 7, 8, 9, 2, 1, 4]
^ ^
6-1 = 5
[6, 4, 7, 8, 9, 2, -, 4] [5, 4, 7, 8, 9, 2, 1, 4]
^ ^
4-2 = 2
[6, 4, 7, 8, 9, -, -, 4] [5, 2, 7, 8, 9, 2, 1, 4]
^ ^
7-4 = 3
[6, -, 7, 8, 9, -, -, 4] [5, 2, 3, 8, 9, 2, 1, 4]
^ ^
8-4 = 4
[6, -, 7, 8, 9, -, -, -] [5, 2, 3, 4, 9, 2, 1, 4]
^ ^
9-6 = 3
[-, -, 7, 8, 9, -, -, -] [5, 2, 3, 4, 3, 2, 1, 4]
^ ^
2-7 = -5
[-, -, -, 8, 9, -, -, -] [5, 2, 3, 4, 3,-5, 1, 4]
^ ^
1-8 = -7
[-, -, -, -, 9, -, -, -] [5, 2, 3, 4, 3,-5,-7, 4]
^ ^
4-9 = -5
Final output: [5, 2, 3, 4, 3, -5, -7, -5]
Casos de teste
Input: [6, 4, 7, 8, 9, 2, 1, 4] => Output: [5, 2, 3, 4, 3, -5, -7, -5]
Input: [4, 7, 4, 9, -10, 8, 40] => Output: [14, 3, 0, 2, -18, -1, 0]
Input: [0.25, -0.5, 8, 9, -10] => Output: [10.25, 0, 7.75, 1, -19]
Input: [3, 4, 9, 1, 1, 1, -5] => Output: [8, 3, 8, 0, -2, -3, -14]
Isso é código-golfe , então a resposta mais curta em bytes vence.
Respostas:
Geléia , 2 bytes
Experimente online!
ou Experimente todos os casos de teste
fonte
MATL , 3 bytes
Experimente online!
fonte
Casca , 4 bytes
Experimente online!
Explicação
fonte
Prolog (SWI) ,
938068 bytesExperimente online!
fonte
Ruby, 32 caracteres
fonte
JavaScript (ES6), 44 bytes
Experimente online!
Comentado
fonte
Java 10, 83 bytes
Modifica a matriz de entrada em vez de retornar uma nova para salvar bytes.
Experimente online.
Explicação:
fonte
R , 18 bytes
Experimente online!
Faz o que diz :)
fonte
Python 3,
4240 byteslambda a:[b-c for b,c in zip(a,sorted(a))]
fonte
map
.map
objeto, em vez de uma lista. Isso seria uma área cinzenta para os requisitos do concurso? Talvez você possa enviá-lo como sua própria resposta, pois provavelmente é diferente o suficiente para se qualificar.int
s, então vou deixar a minha como está.map
objeto é válido, mas o requisito não int torna minha sugestão inválida.Haskell , 34 bytes
Experimente online!
fonte
05AB1E , 2 bytes
Experimente online ou verifique todos os casos de teste .
Explicação:
fonte
Lisp comum, 46 bytes
Experimente online!
fonte
Coco , 23 bytes
Experimente online!
fonte
Perl 6 , 15 bytes
Experimente online!
Função anônima que pega uma lista e retorna uma lista.
fonte
Japonês , 9 bytes
Experimente online!
fonte
Stax , 5 bytes
Execute e depure
Para mostrar como funciona, aqui está a versão comentada e descompactada.
Execute este
fonte
J , 4 bytes
Experimente online!
Explicação:
Do argumento subtraia
-
o/:~
argumento classificadofonte
Japonês ,
86 bytesExperimente aqui
Explicação
fonte
SmileBASIC, 49 bytes
A matriz de entrada é modificada no local.
ARYOP
faz operações em matrizes inteiras de uma só vez. Neste caso, ele subtraiB
a partirA
e armazena o resultado emA
.fonte
Julia 0,6 , 12 bytes
Experimente online!
fonte
PHP , 86 bytes
Experimente online!
fonte
Tcl , 49 bytes
Experimente online!
fonte