Minimum Number of Operations to Reinitialize a Permutation LeetCode solution in C++
1class Solution {2public:3vector<int> change(vector<int> arr, vector<int> v) {4int n = v.size();5for (int i = 0; i < n; i++) {6if (i % 2 == 0) {7arr[i] = v[i / 2];8} else {9arr[i] = v[(n / 2) + ((i - 1) / 2)];10}11}12return arr;13}14int reinitializePermutation(int n) {15vector<int> v(n);16for (int i = 0; i < n; i++) {17v[i] = i;18}19vector<int> arr(n);2021arr = change(arr, v);22if (arr == v) {23return 1;24}2526int cnt = 1;2728while (arr != v) {29arr = change(arr, arr);30cnt++;31if (arr == v) {32return cnt;33}34}35return cnt;36}37};