Соревнование
Создайте функцию, которая принимает массив чисел и вычитает из каждого элемента самый нижний элемент в массиве, который еще не был вычтен из другого.
- После использования самого низкого значения, оно не может быть использовано снова.
- Числа в массиве являются десятичными числами и не обязательно являются целыми числами.
Пример:
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]
Тестовые случаи
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]
Это Код-гольфТаким образом, самый короткий ответ в байтах побеждает.
Ответы:
Желе , 2 байта
Попробуйте онлайн!
или попробуйте все тестовые случаи
источник
MATL , 3 байта
Попробуйте онлайн!
источник
Шелуха , 4 байта
Попробуйте онлайн!
объяснение
источник
Пролог (SWI) ,
938068 байтПопробуйте онлайн!
источник
Рубин, 32 знака
источник
JavaScript (ES6), 44 байта
Попробуйте онлайн!
комментарии
источник
Java 10, 83 байта
Изменяет массив ввода вместо того, чтобы возвращать новый для сохранения байтов.
Попробуйте онлайн.
Объяснение:
источник
R , 18 байт
Попробуйте онлайн!
Делает то, что говорит :)
источник
Python 3,
4240 байтlambda a:[b-c for b,c in zip(a,sorted(a))]
источник
map
.map
объект, а не список. Это будет своего рода серая зона для требований конкурса? Может быть, вы могли бы просто представить его как свой собственный ответ, так как он, вероятно, достаточно отличается, чтобы претендовать.int
s, поэтому я оставлю свой как есть.map
объекта допустимо, но требование не-int делает мое предложение недействительным.Haskell , 34 байта
Попробуйте онлайн!
источник
05AB1E , 2 байта
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
источник
Common Lisp, 46 байт
Попробуйте онлайн!
источник
Кокос , 23 байта
Попробуйте онлайн!
источник
Perl 6 , 15 байт
Попробуйте онлайн!
Анонимная функция, которая принимает один список и возвращает список.
источник
Japt , 9 байт
Попробуйте онлайн!
источник
Stax , 5 байт
Запустите и отладьте его
Чтобы показать, как это работает, вот распакованная, закомментированная версия.
Запустите этот
источник
J , 4 байта
Попробуйте онлайн!
Объяснение:
Из аргумента вычтите
-
отсортированный/:~
аргументисточник
Japt ,
86 байтПопробуй здесь
объяснение
источник
SmileBASIC, 49 байтов
Входной массив изменяется на месте.
ARYOP
выполняет операции над целыми массивами одновременно. В этом случае он вычитаетB
изA
и сохраняет результат вA
.источник
Юлия 0,6 , 12 байт
Попробуйте онлайн!
источник
PHP , 86 байт
Попробуйте онлайн!
источник
Tcl , 49 байт
Попробуйте онлайн!
источник