Условие задачи:
Реализуйте функцию, которая изменяет массив целых чисел на месте, чтобы получить следующую лексикографически большую перестановку.
Если такой перестановки не существует (массив в порядке убывания), верните наименьшую возможную перестановку (т.е. отсортированную по возрастанию). Примеры:[1,2,3] → [1,3,2]
[3,2,1] → [1,2,3]
[1,1,5] → [1,5,1]
[1,3,2] → [2,1,3]
Важно: Решение должно быть in-place (без дополнительной памяти, кроме O(1)).
Нельзя использовать встроенные функции для генерации перестановок.
Представь, что у тебя есть три кубика с цифрами: 1, 2, 3.
Ты выкладываешь их в разном порядке и читаешь как числа: Это все возможные «раскладки» — перестановки. Теперь ты смотришь на число 123 и спрашиваешь: «Какое самое ближайшее большее число я могу сделать из этих же кубиков?» Ответ: 132! А если у тебя 321 — самое большое?
Тогда «следующего» нет, и ты начинаешь сначала → 123. Ты просто ищешь следующий шаг в порядке от маленького к большому, как в алфавите! Алгоритм, пред