ввод -> алфавит -> вывод (индекс числа в алфавите) -> новый алфавит (число, перенесенное в начало алфавита):
3 -> [1, 2, 3, 4, 5] -> 3 -> [3, 1, 2, 4, 5]
2 -> [3, 1, 2, 4, 5] -> 3 -> [2, 3, 1, 4, 5]
1 -> [2, 3, 1, 4, 5] -> 3 -> [1, 2, 3, 4, 5]
1 - > [1, 2, 3, 4, 5] -> 1 -> [1, 2, 3, 4, 5]
4 -> [1, 2, 3, 4, 5] -> 4 -> [4, 1, 2, 3, 5]
5 -> [4, 1, 2, 3, 5] -> 5 -> [5, 4, 1, 2, 3]
ввод: (n - количество цифр в алфавите, m - длина текста, который должен быть зашифрован, текст)
5, 6
3 2 1 1 4 5
Ответ: 3 2 1 1 4 5 -> 3 3 3 1 4 5
Существует ли какая-либо структура данных или алгоритм, позволяющий сделать это эффективно, быстрее, чем O (n * m)?
Буду признателен за любые идеи. Спасибо.