给定两个整型数组,本题要求找出不是两者共有的元素。 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是
时间: 2024-06-01 13:10:16 浏览: 41
两者共有的元素,数字间以空格分隔,但行末不能有多余空格。若全是共有元素,则输出NULL。题目保证每个输入的整型数组至少有一个元素。 输入样例: 10 3 5 -1 7 10 3 6 6 7 -1 2 7 2 5 10 2 6 5 10 7 3 1 4 1 6 10 7 5 10 输出样例: 3 6 2 1 4
相关问题
给定两个整型数组,本题要求找出不是两者共有的元素。输入格式:输入分别在两行中给...
给定两个整型数组,要求找出不是两者共有的元素。输入格式为:两行分别给出两个整型数组,每行先给出数组的长度n(1≤n≤10^5),然后给出n个整数,整数之间用空格分隔。
解题思路:
1. 首先将两个数组分别存储到两个集合中,利用集合的特性去除重复元素。
2. 然后遍历第一个集合,判断每个元素是否存在于第二个集合中,如果不存在,则将该元素添加到结果集合中。
3. 同样地,遍历第二个集合,判断每个元素是否存在于第一个集合中,如果不存在,则将该元素添加到结果集合中。
4. 最后将结果集合中的元素输出即可。
示例代码如下:
```python
def find_unique_elements(arr1, arr2):
set1 = set(arr1)
set2 = set(arr2)
result = set()
for num in set1:
if num not in set2:
result.add(num)
for num in set2:
if num not in set1:
result.add(num)
return list(result)
# 示例输入:[1, 2, 3, 4, 5] 和 [4, 5, 6, 7, 8]
arr1 = [1, 2, 3, 4, 5]
arr2 = [4, 5, 6, 7, 8]
print(find_unique_elements(arr1, arr2))
```
输出结果为:[1, 2, 3, 6, 7, 8]
给定两个整型数组,本题要求找出不是两者共有的元素。 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不
是两者共有的元素。可以使用哈希表来实现。具体步骤如下:
1. 读入两个整型数组,存储在两个数组a和b中。
2. 定义一个哈希表unordered_set<int>,用来存储数组a中的元素。
3. 遍历数组b中的元素,如果当前元素不在哈希表中,则输出该元素。
4. 完成输出后,程序结束。
下面是完整的C++代码实现:
```cpp
#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
int n, m;
cin >> n;
unordered_set<int> s;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
s.insert(x);
}
cin >> m;
for (int i = 0; i < m; i++) {
int x;
cin >> x;
if (s.find(x) == s.end()) {
cout << x << " ";
}
}
return 0;
}
```
注意:这里使用了C++11中提供的unordered_set容器,如果编译器不支持此容器,需要用其他容器代替。
阅读全文