PAT甲级 1029median 参考柳神解题思路

先扔完整代码,可通过在线测试,具体迟点再写

#include<iostream>
#include<vector>
using namespace std;
int main()
{
	int m, n;
	cin >> m;
	vector<int> arr1(m);
	for (int i = 0; i < m; i++)
	{
		cin >> arr1[i];
	}
	cin >> n;
	int total = (m + n + 1) / 2;
	int count = 0;
	int i = 0;
	for (int j = 0; j < n; j++)
	{
		int temp = 0;
		cin >> temp;
		while (i < m&&arr1[i] < temp)
		{
			count++;
			if (count == total)
			{
				cout << arr1[i];
			}
			i++;
		}
		count++;
		if (count == total)
		{
			cout << temp;
		}
	}
	while (i < m&&count<total)
	{
		count++;
		if (count == total)
		{
			cout << arr1[i];
			return 0;
		}
		i++;
	}
}

想研究的可以先去看柳神的解答

柳神网站:https://www.liuchuo.net/archives/2248

    原文作者:算法
    原文地址: https://www.twblogs.net/a/5bd3b4ac2b717778ac20b93c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞