答:
这是强大的C知道的答案
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int m, n;
cin >> m >> n;
vector<int> A(m);
vector<int> B(n);
for (int i = 0; i < m; i++) {
cin >> A[i];
}
for (int i = 0; i < n; i++) {
cin >> B[i];
}
// 合并数组并排序
vector<int> merged(A.size() + B.size());
merge(A.begin(), A.end(), B.begin(), B.end(), merged.begin());
// 输出并集
for (int i = 0; i < merged.size(); i++) {
cout << merged[i] << " ";
}
cout << endl;
// 求交集
vector<int> intersection;
for (int i = 0; i < merged.size(); i++) {
if (binary_search(A.begin(), A.end(), merged[i]) && binary_search(B.begin(), B.end(), merged[i])) {
intersection.push_back(merged[i]);
}
}
// 输出交集
for (int i = 0; i < intersection.size(); i++) {
cout << intersection[i] << " ";
}
cout << endl;
return 0;
}
可还是错了,我现在要去看看网站答案是不是有问题.....