给定两个整型数组,本题要求找出不是两者共有的元素。 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数n(≤20),随后是n个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。 输入样例:
时间: 2023-05-31 15:19:37 浏览: 1678
### 回答1:
题目要求找出不是两者共有的元素的数组。输入格式:输入分别在两行中给出两个整型数组,每行先给出正整数n(≤20),表示数组长度,接下来是n个整数,其间以空格分隔。输出格式:按照输入顺序,每行输出一行,其中每个数字占据一个位置,数字间以空格分隔。但行末不得有多余空格。题目保证至少存在一个不属于两个数组的元素。同一数字不重复输出。输入样例:
3 2 1
4 2 1 4
输出样例:
3
2 4
### 回答2:
这道题目需要找出两个数组中不相同的元素。首先我们可以将两个数组的元素放在一个哈希表中,然后再遍历一遍哈希表,找到不同的元素输出即可。
具体做法如下:
1.读入两个数组,将它们的元素都存放在一个哈希表中,这里以Python中的字典实现。
2.遍历哈希表,找到只在一个数组出现的元素,将它们存放在结果列表中。
3.输出结果列表,按照数字给出的顺序输出,数字间以空格分隔,但行末不得有多余的空格。
以下是Python代码实现:
```python
# 定义一个函数,返回两个数组中不相同的元素
def find_difference(arr1, arr2):
# 将数组中的元素存放在一个哈希表中
hash_table = {}
for i in range(len(arr1)):
hash_table[arr1[i]] = 1
for i in range(len(arr2)):
# 如果arr2[i]已经在哈希表中,将其值改为2
if arr2[i] in hash_table:
hash_table[arr2[i]] = 2
# 如果不在哈希表中,将其添加到哈希表中
else:
hash_table[arr2[i]] = 1
# 新建一个列表,用于存放结果
result_list = []
# 遍历哈希表,找到只在一个数组出现的元素
for key, value in hash_table.items():
if value == 1:
result_list.append(key)
return result_list
# 主函数
if __name__ == "__main__":
# 读入两个整型数组
n1 = int(input())
arr1 = list(map(int, input().split()))
n2 = int(input())
arr2 = list(map(int, input().split()))
# 调用函数,返回不相同的元素
result_list = find_difference(arr1, arr2)
# 输出结果列表,按照数字给出的顺序输出,数字间以空格分隔,但行末不得有多余的空格
for i in range(len(result_list)):
if i == len(result_list) - 1:
print(result_list[i])
else:
print(result_list[i], end=" ")
```
时间复杂度:O(n),其中n为两个数组的元素总数。遍历哈希表的时间复杂度为O(m),其中m为哈希表中的元素个数,显然m<=n,因此总时间复杂度为O(n)。
### 回答3:
题目描述
给定两个整型数组,本题要求找出不是两者共有的元素。
输入格式:
输入分别在两行中给出两个整型数组,每行先给出正整数n(≤20),随后是n个整数,其间以空格分隔。
输出格式:
在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。
输入样例:
5 1 3 5 7 9
4 2 4 6 8
输出样例:
1 3 5 7 9 2 4 6 8
分析思路
题目本身没有多少技术难度。假设数组 A 和数组 B 中共有 m 个数,将它们依次排列并合并得到数组 C,然后我们依次比较 C 中相邻两个数,将出现两次的数只输出一次,其余的数则被输出 2 次。
代码实现
Python 代码
阅读全文