题目:
题意解析:
判断一下,通过0次或者多次同下标位置的数组数字交换之后,两个数组中的最后一个数值是否是当前数组中的最大值,如果是的话就输出“Yes”反之输出“No”。
题解:
(1)在第两个数组 b 输入的时候,进行判断与第一个数组 a 相同位置的数进行比较,a 数组保存两个数组中的最小值,b 数组保存两个数组中的最大值。
(2)保存一下两个数组的最后一位的数值,对两个数组进行排序,然后比较
代码:
#include<bits/stdc++.h>
using namespace std;
int t,n;
int main() {
cin>>t;
while(t--) {
cin>>n;
vector<int> a;
vector<int> b;
int k;
for(int i=0; i<n; i++) {
cin>>k;
a.push_back(k);
}
for(int i=0; i<n; i++) {
cin>>k;
if(a[i]>k) {
int l=a[i];
a[i]=k;
b.push_back(l);
}else{
b.push_back(k);
}
}
int x1=a[n-1],x2=b[n-1];
sort(a.begin(),a.end());
sort(b.begin(),b.end());
if(x1==a[n-1]&&x2==b[n-1]){
cout<<"Yes";
}else{
cout<<"No";
}
cout<<endl;
}
return 0;
}