Die Herausforderung
Erstellen Sie eine Funktion, die ein Array von Zahlen verwendet und von jedem Element das niedrigste Element im Array subtrahiert, das noch nicht von einem anderen subtrahiert wurde.
- Nach Verwendung des niedrigsten Werts kann er nicht mehr verwendet werden.
- Zahlen im Array sind Dezimalzahlen und nicht unbedingt ganze Zahlen.
Beispiel:
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]
Testfälle
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]
Dies ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Antworten:
Gelee , 2 Bytes
Probieren Sie es online aus!
oder Probieren Sie alle Testfälle aus
quelle
MATL , 3 Bytes
Probieren Sie es online aus!
quelle
Schale , 4 Bytes
Probieren Sie es online aus!
Erläuterung
quelle
Prolog (SWI) ,
938068 BytesProbieren Sie es online aus!
quelle
Ruby, 32 Zeichen
quelle
JavaScript (ES6), 44 Byte
Probieren Sie es online aus!
Kommentiert
quelle
Java 10, 83 Bytes
Ändert das Eingabearray, anstatt ein neues zurückzugeben, um Bytes zu speichern.
Probieren Sie es online aus.
Erläuterung:
quelle
R , 18 Bytes
Probieren Sie es online aus!
Tut was es sagt :)
quelle
Python 3,
4240 Byteslambda a:[b-c for b,c in zip(a,sorted(a))]
quelle
map
.map
Objekt anstelle einer Liste zurück. Wäre das eine Art Grauzone für die Anforderungen des Wettbewerbs? Vielleicht könnten Sie es einfach als Ihre eigene Antwort einreichen, da es wahrscheinlich anders genug ist, um sich zu qualifizieren.int
s sein muss, also werde ich meine so lassen, wie sie ist.map
Objekts ist gültig, aber die Nicht-Int-Anforderung macht meinen Vorschlag ungültig.Haskell , 34 Bytes
Probieren Sie es online aus!
quelle
05AB1E , 2 Bytes
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
quelle
Common Lisp, 46 Bytes
Probieren Sie es online aus!
quelle
Kokosnuss , 23 Bytes
Probieren Sie es online aus!
quelle
Perl 6 , 15 Bytes
Probieren Sie es online aus!
Anonyme Funktion, die eine Liste verwendet und eine Liste zurückgibt.
quelle
Japt , 9 Bytes
Probieren Sie es online aus!
quelle
Stax , 5 Bytes
Führen Sie es aus und debuggen Sie es
Um zu zeigen, wie es funktioniert, finden Sie hier die entpackte, kommentierte Version.
Führen Sie diesen aus
quelle
J , 4 Bytes
Probieren Sie es online aus!
Erläuterung:
Subtrahieren Sie vom Argument
-
das sortierte/:~
Argumentquelle
Japt ,
86 BytesProbieren Sie es hier aus
Erläuterung
quelle
SmileBASIC, 49 Bytes
Das Eingabearray wird an Ort und Stelle geändert.
ARYOP
führt Operationen auf ganzen Arrays gleichzeitig aus. In diesem Fall zieht sieB
ausA
und speichert das Ergebnis inA
.quelle
Julia 0,6 , 12 Bytes
Probieren Sie es online aus!
quelle
PHP , 86 Bytes
Probieren Sie es online aus!
quelle
Tcl , 49 Bytes
Probieren Sie es online aus!
quelle