【leetcode1806】还原排列的最少操作步数
leetcode极简笔记,记录自己写的辣鸡代码
太菜了,硬解,没找规律,幸好不超时
class Solution {
public:
int reinitializePermutation(int n) {
int cnt=0;
bool flag=0;
vector<int> arr,temp;
for(int i=0;i<n;i++){
arr.push_back(i);
}
while(!flag){
int i=0;
for(i=0;i<n;i++){
if(i%2==0) temp.push_back(arr[i/2]);
else temp.push_back(arr[n/2+(i-1)/2]);
}
cnt++;
for(i=0;i<n;i++){
//cout<<temp[i]<<" ";
if(temp[i]!=i){
arr=temp;
temp.clear();
//cout<<endl;
break;
}
}
if(i==n) flag=1;
}
return cnt;
}
};