[1, 2, 3] порядок такой: [1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1].
Дан массив values. Верните следующую по этому порядку расстановку. Если values — последняя расстановка, верните первую, то есть элементы по возрастанию.
Сможете обойтись константной дополнительной памятью, переставляя элементы прямо в values?values=[2, 4, 3, 1] → [3, 1, 2, 4]
Хвост 4, 3, 1 убывает. Двойку меняем на наименьшее большее из хвоста — 3, остаток 1, 2, 4 ставим по возрастанию: [3, 1, 2, 4].
values=[5, 5, 2] → [2, 5, 5]
Это последняя расстановка по порядку, поэтому массив становится первой: [2, 5, 5].
values=[1, 3, 3] → [3, 1, 3]
Расстановки по порядку: [1, 3, 3], [3, 1, 3], [3, 3, 1]. Следующая — [3, 1, 3].
values=[2, 4, 3, 1]
[3, 1, 2, 4]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 38 тестов на сервере, включая скрытые.