PTA 7-2 两个有序序列的中位数 (25分)

已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A​0,A​1​​ ,⋯,A​N−1的中位数指A​(N−1)/2​​ 的值,即第⌊(N+1)/2⌋个数(A​0为第1个数)。

输入格式:
输入分三行。第一行给出序列的公共长度N(0

输出格式:
在一行中输出两个输入序列的并集序列的中位数。

输入样例1:

5
1 3 5 7 9
2 3 4 5 6

输出样例1:

4

输入样例2:

6
-100 -10 1 1 1 1
-50 0 2 3 4 5

输出样例2:

1

方法:用数组或者容器,排序输出即可

AC代码:

#include
using namespace std;

int main(){
   int n;
   cin>>n;
   n=2*n;
   vector<int>a; 
   for(int i=0;i<n;i++){
       int temp;
       cin>>temp;
       a.push_back(temp);
   }
  sort(a.begin(), a.end()); //排序
  int cnt=0; 
  for(vector<int>::iterator it=a.begin(); it!=a.end(); it++){
        cnt+=1;
    }
  cnt=(cnt-1)/2;
  cout<<a[cnt];
  return 0;
}

你可能感兴趣的:(C++,算法,c++,算法)