1806. Minimum Number of Operations to Reinitialize a Permutation

Difficulty:
Related Topics:
Similar Questions:

    Problem

    You are given an even integer n​​​​​​. You initially have a permutation perm of size n​​ where perm[i] == i(0-indexed)​​​​.

    In one operation, you will create a new array arr, and for each i:

    You will then assign arr​​​​ to perm.

    Return **the minimum *non-zero* number of operations you need to perform on perm to return the permutation to its initial value.**

      Example 1:

    Input: n = 2
    Output: 1
    Explanation: perm = [0,1] initially.
    After the 1st operation, perm = [0,1]
    So it takes only 1 operation.
    

    Example 2:

    Input: n = 4
    Output: 2
    Explanation: perm = [0,1,2,3] initially.
    After the 1st operation, perm = [0,2,1,3]
    After the 2nd operation, perm = [0,1,2,3]
    So it takes only 2 operations.
    

    Example 3:

    Input: n = 6
    Output: 4
    

      Constraints:

    Solution (Java)

    class Solution {
        public int reinitializePermutation(int n) {
            final int factor = n - 1;
            if (factor < 2) {
                return 1;
            }
            int powerOfTwo = 2;
            int ops = 1;
            while (powerOfTwo != 1) {
                powerOfTwo = ((powerOfTwo << 1) % factor);
                ops++;
            }
            return ops;
        }
    }
    

    Explain:

    nope.

    Complexity: