Wyzwanie
Utwórz funkcję, która pobiera tablicę liczb i odejmuje od każdego elementu najniższy element w tablicy, który nie został jeszcze odjęty od innego.
- Po użyciu najniższej wartości nie można jej ponownie użyć.
- Liczby w tablicy są liczbami dziesiętnymi i niekoniecznie liczbami całkowitymi.
Przykład:
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]
Przypadki testowe
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]
To jest golf-golf, więc wygrywa najkrótsza odpowiedź w bajtach.
Odpowiedzi:
Galaretka , 2 bajty
Wypróbuj online!
lub Wypróbuj wszystkie przypadki testowe
źródło
MATL , 3 bajty
Wypróbuj online!
źródło
Łuska , 4 bajty
Wypróbuj online!
Wyjaśnienie
źródło
Prolog (SWI) ,
938068 bajtówWypróbuj online!
źródło
Ruby, 32 znaki
źródło
JavaScript (ES6), 44 bajty
Wypróbuj online!
Skomentował
źródło
Java 10, 83 bajty
Zmienia tablicę wejściową zamiast zwracać nową, aby zapisać bajty.
Wypróbuj online.
Wyjaśnienie:
źródło
R , 18 bajtów
Wypróbuj online!
Robi to, co mówi :)
źródło
Python 3,
4240 bajtówlambda a:[b-c for b,c in zip(a,sorted(a))]
źródło
map
.map
obiekt zamiast listy. Czy byłby to rodzaj szarej strefy dla wymagań konkursu? Być może możesz po prostu przesłać go jako własną odpowiedź, ponieważ prawdopodobnie jest wystarczająco inny, aby się zakwalifikować.int
s, więc zostawię moje tak, jak jest.map
obiektu jest prawidłowe, ale wymóg inny niż int powoduje, że moja sugestia jest nieważna.Haskell , 34 bajty
Wypróbuj online!
źródło
05AB1E , 2 bajty
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
źródło
Common Lisp, 46 bajtów
Wypróbuj online!
źródło
Kokos , 23 bajty
Wypróbuj online!
źródło
Perl 6 , 15 bajtów
Wypróbuj online!
Anonimowa funkcja, która pobiera jedną listę i zwraca listę.
źródło
Japt , 9 bajtów
Wypróbuj online!
źródło
Stax , 5 bajtów
Uruchom i debuguj
Aby pokazać, jak to działa, oto rozpakowana, skomentowana wersja.
Uruchom ten
źródło
J , 4 bajty
Wypróbuj online!
Wyjaśnienie:
Od argumentu odejmij
-
posortowany/:~
argumentźródło
Japt ,
86 bajtówWypróbuj tutaj
Wyjaśnienie
źródło
SmileBASIC, 49 bajtów
Tablica wejściowa jest modyfikowana na miejscu.
ARYOP
wykonuje operacje na całych tablicach jednocześnie. W tym przypadku to odejmujeB
odA
i zapisuje wynik wA
.źródło
Julia 0.6 , 12 bajtów
Wypróbuj online!
źródło
PHP , 86 bajtów
Wypróbuj online!
źródło
Tcl , 49 bajtów
Wypróbuj online!
źródło