Minimum Number of Operations to Reinitialize a Permutation LeetCode solution in C++

1
class Solution {
2
public:
3
vector<int> change(vector<int> arr, vector<int> v) {
4
int n = v.size();
5
for (int i = 0; i < n; i++) {
6
if (i % 2 == 0) {
7
arr[i] = v[i / 2];
8
} else {
9
arr[i] = v[(n / 2) + ((i - 1) / 2)];
10
}
11
}
12
return arr;
13
}
14
int reinitializePermutation(int n) {
15
vector<int> v(n);
16
for (int i = 0; i < n; i++) {
17
v[i] = i;
18
}
19
vector<int> arr(n);
20

21
arr = change(arr, v);
22
if (arr == v) {
23
return 1;
24
}
25

26
int cnt = 1;
27

28
while (arr != v) {
29
arr = change(arr, arr);
30
cnt++;
31
if (arr == v) {
32
return cnt;
33
}
34
}
35
return cnt;
36
}
37
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0