Учитывая список натуральных чисел, который содержит не менее 3 различных записей, выведите перестановку этого списка, которая не отсортирована в порядке возрастания или убывания.
Примеры
1,2,3 -> 2,1,3 or 3,1,2 or 1,3,2 or 2,3,1
1,2,3,3 -> 2,1,3,3 or 3,1,2,3 or 1,3,2,3 etc..
Спасибо @Arnauld и @NoOneIsHere за название!
[2,[1,3]]
.Ответы:
JavaScript (ES6),
3934 байтаСортируйте массив в порядке возрастания, вытолкните последний элемент и используйте его в качестве первого элемента нового массива. Затем деструктурируйте оставшиеся элементы исходного массива в новый массив (в JS оба
sort
иpop
измените исходный массив).Попробуй это
источник
a.sort()
?sort
метод JS сортирует лексикографически.Брахилог , 2 байта
Попробуйте онлайн!
или
Попробуйте онлайн!
Сортирует, а затем вращает список
источник
Желе , 3 байта
Попробуйте онлайн!
источник
Ṣṙ-
также работает (просто хотел сказать, что; вы, вероятно, знали: P)Ṣṙ1
только три байта? В UTF-8 это 7 байтов.Ом , 2 байта
Попробуйте онлайн!
Сортировка и поворот вправо.
источник
Japt , 3 байта
Попробуй это
Сортирует (
n
) массив и вращает его (é
) на один элемент вправо.источник
Python 3 , 31 байт
Попробуйте онлайн!
-1 байт благодаря xnor
источник
min
в конец сохраняет байт.APL, 9 байт
Попробуйте онлайн!
Как?
⍵[⍋⍵]
- отсортировать список1⌽
- повернуть на 1источник
TI-Basic (TI-84 Plus CE), 31 байт
Запрашивает ввод в формате
{1,2,3,4}
.TI-Basic - это токенизированный язык , все токены, используемые здесь, являются однобайтовыми.
Объяснение:
источник
Pyth ,
754 байтаПопробуйте онлайн!
-1 байт благодаря FryAmTheEggman
источник
05AB1E , 2 байта
Попробуйте онлайн!
источник
05AB1E , 2 байта
Попробуйте онлайн!
источник
Сетчатка , 21 байт
Попробуйте онлайн! Сортируйте и вращайте как обычно. По крайней мере, на этот раз нет одинарного преобразования.
источник
Java 8,
6837 байт-31 байт благодаря @Nevay (забыл, у Java 8 был
List#sort(Comparator)
метод ..)Изменяет input-
ArrayList
, вместо того, чтобы возвращать новый.Объяснение:
Попробуй это здесь.
источник
l->{l.sort(null);java.util.Collections.rotate(l,1);}
чтобы сохранить 16 байтов.l->{l.sort(null);l.add(l.remove(0));}
для сохранения 31 байта (требуется использование списка не фиксированного размера).add
иremove
должны быть реализованы; ничего не сказано о списке фиксированного размера ... Кевин Круйссен, учитывая, что в предыдущих комментариях есть намного лучшие альтернативы, я буду ждать редактирования до + 1ing.Haskell,
3637 байтИспользуйте шаблоны представлений для сопоставления с заголовком отсортированной версии списка ввода, затем добавьте первый элемент списка к концу оставшегося списка.Шаблоны просмотра не стоят того. Сортируйте список, снимите голову, добавьте ее в конец. В этом случае оказывается, что наивное решение, набранное компактно, является лучшим.
источник
-XViewPatterns
. Подсчет тех стандартным способомf(a:b)=b++[a];f.sort
короче.Perl 6 ,
4319 байтПопытайся
Попытайся
Обратите внимание,
[1..*,0]
что в результате((2,3),1)
, так.flat
что есть, чтобы превратить его в(2,3,1)
источник
Mathematica, 18 байт
Попробуйте онлайн!
источник
RotateLeft@*Sort
Ly , 7 байт
Попробуйте онлайн!
Тьфу, испортить сорт так дорого!
Объяснение:
источник
R,
333229 байтПринимает ввод от стандартного ввода. Сортирует список, а затем перемещает первый элемент в конец, гарантируя, что он больше не сортируется. Сохранено три байта благодаря Джузеппе.
Другая реализация с тем же количеством байтов:
источник
c(sort(x<-scan())[-1],min(x))
29 байтов, используя, по сути, ту же идею, что и ваша.Ом , 2 байта
Попробуйте онлайн!
Я думаю, что это достаточно отличается от поста полностью человеческого, чтобы опубликовать новый ответ; Я надеюсь, что вы не возражаете: P РЕДАКТИРОВАТЬ : DAMMIT ВЫ NINJA'D ME
источник
Python, 31 байт
Еще одно решение Python.
К сожалению, у этого есть та же самая длина к ответу HyperNeutrino .
источник
Gaia , 3 байта
Попробуйте онлайн!
То же, что и в других ответах: сортировка
ȯ
и поворот влево один раз1«
.источник
Сетчатка , 10 байт
Попробуйте онлайн!
Это оставляет список со вторым самым высоким элементом первым и самым высоким элементом последним, который никогда не сортируется правильно
источник
Рубин, 18 байт
Представлено на мобильном телефоне. Пожалуйста, не убивайте меня за проблемы.
источник
Pyth, 5 байт
объяснение
SQ
- сортировать список ввода.>SQ1
- вращать список ввода циклически на 1источник
Протон , 19 байт
Попробуйте онлайн!
-2 байта косвенно благодаря xnor
Еще не работает над TIO; в ожидании тяги.источник
Python 3 , 28 байт
Попробуйте онлайн!
a.sort()
сортируетa
на месте и возвращаетNone
.None
может использоваться в качестве индекса среза и аналогично пропуску этого индекса.источник
Python 3 , 31 байт
Попробуйте онлайн! или Проверьте все контрольные примеры.
Вдохновленный ответом Shaggy's JS .
источник
RProgN 2 , 2 байта
Попробуйте онлайн!
источник
PHP, 44 байта
требует PHP 5.4 или более поздней версии для синтаксиса короткого массива.
сортировка аргументов, замена 0-го аргумента удаленным последним аргументом, печать.
Запустите
-nr
или попробуйте онлайн .0-й аргумент - это имя файла скрипта,
"-"
если вы вызываете PHP с помощью-r
."-"
сравнивается с другими аргументами в виде строки, и, посколькуord("-")==45
она меньше любого числа. Сами числа, хотя и строки, сравниваются как числа:"12" > "2"
.php -nr '<code>' 3 4 2 5 1
иsort($a=&$argv)
привести к$a=["-","1","2","3","4","5"]
→[array_pop($a)]+$a
есть[0=>"5"]+[0=>"-",1=>"1",2=>"2",3=>"3",4=>"4"]
,что приводит к
[0=>"5",1=>"1",2=>"2",3=>"3",4=>"4"]
.источник
+
Оператор не добавляется, он сливается (без переупорядочения индексов, но здесь это не имеет значения). Важным моментом является то, что он$a
указывает на имя файла скрипта$argv
и$argv[0]
содержит его, аргументы начинаются с индекса 1. Я расширил описание. Спасибо за вопрос.Юлия, 23 байта
Чуть короче, но эквивалентно
f(x)=circshift(sort(x),1)
. Хотелось бы, чтобы я мог сделать метод, основанный наselect
том, что было более компактным, но я не могуисточник