1460. 通过翻转子数组使两个数组相等
思路:第一层for循环用来找到两个数组不相同的地方,第二层for循环用来找到arr里需要翻转的区间(i~j),用自带的reverse函数进行翻转。
class Solution {
public:
bool canBeEqual(vector<int>& target, vector<int>& arr) {
bool flag=true;
int n=target.size();
for(int i=0;i<n;i++){
if(target[i]!=arr[i]){
bool flag1=false;
for(int j=i+1;j<n;j++){
if(target[i]==arr[j]){
reverse(arr.begin()+i,arr.begin()+j+1);
flag1=true;
}
}
if(!flag1){
flag=false;
break;
}else{
i--;
}
}
}
return flag;
}
};