Я нашел этот вопрос для интервью и задаюсь вопросом, есть ли какой-либо хороший способ его решения. У нас есть входной массив [0, 1, 2, 3] и массив шаблонов, например. [3,1,2,0], то, что делает массив шаблонов, заключается в том, что мы должны изменить порядок ввода, поместив элемент в индекс 3 в первую позицию, затем поместите элемент в индекс 1 во вторую позицию и т. Д. Таким образом, после одной итерации [0, 1, 2, 3] станет [3, 1, 2, 0], после очередной итерации переупорядочения с использованием того же шаблона она снова станет [0, 1, 2, 3].Переупорядочивающий ввод с использованием того же шаблона, пока он не изменится обратно к первоначальному заказу
Вопрос в том, сколько раз нам нужно повторять заданный шаблон, чтобы он возвращался к первоначальному порядку, и возможно ли, что входной массив никогда не может вернуться к первоначальному порядку, учитывая определенный порядок переупорядочения?
Вот вопрос, я сам только знаю, как грубой силы, чтобы решить - сохранить итерацию его, пока это не тот же порядок, что и оригинальный вход. О том, может ли он никогда не вернуться к первоначальному заказу, мой подход заключается в записи всех заказов, которые мы видели до сих пор, и когда мы нашли заказ, который уже был посещен, мы понимаем, что есть цикл, и мы, возможно, никогда не вернемся к оригинал. Мой анализ в этом параграфе, вероятно, бесполезен, поэтому не стесняйтесь игнорировать его ...
Спасибо ... Я чувствую, что это довольно сложно реализовать во время собеседования, не зная или не прочитав об этом перед рукой. – Arch1tect