排序之后再寻找会超时 O(nlogn)
使用双指针是线性的 O(n)
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
int A[maxn];
int B[maxn];
int n;
int merge(){
int i=0,j=0;
int mid = (2*n+1)/2;
while(i+j<mid-1){ //其实是在i+j==mid-2时结束,因为i,j是从0开始的
if(A[i]<B[j]) i++;
else j++;
}
return A[i]>B[j]?B[j]:A[i];
}
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",A+i);
}
for(int i=0;i<n;i++){
scanf("%d",B+i);
}
printf("%d\n",merge());
return 0;
}