10组不同长度数组同顺序对比取得与原所有数组零重复的所有数字
时间: 2024-03-12 15:47:08 浏览: 55
我理解您的问题是需要对比十个不同长度的数组,并取得这些数组中所有不重复出现的数字,即这些数字在原所有数组中都不出现。下面是一个可能的解决方案:
1. 定义一个字典,用于记录每个数字在哪些数组中出现过。
2. 对于每个小数组,逐个取出元素,判断是否已经在字典中。如果不在,则将其加入字典,并设置出现的数组编号为当前小数组的编号。如果已经在字典中,则将其出现的数组编号更新为当前小数组的编号。
3. 遍历字典中的每个键值对,找到出现数组编号集合长度为1的数字,将其加入新数组中。
下面是一个 Python 代码示例:
```
# 定义十个不同长度的数组
arr1 = [1, 2, 3, 4]
arr2 = [3, 4, 5]
arr3 = [2, 6]
arr4 = [7, 8, 9]
arr5 = [1, 5, 6, 10]
arr6 = [11, 12]
arr7 = [13]
arr8 = [14, 15]
arr9 = [16, 17, 18, 19]
arr10 = [20]
# 定义一个字典
num_dict = {}
# 遍历每个小数组
for i, arr in enumerate([arr1, arr2, arr3, arr4, arr5, arr6, arr7, arr8, arr9, arr10]):
# 遍历小数组中的元素
for num in arr:
# 如果数字不在字典中,则加入字典并设置出现的数组编号为当前小数组的编号
if num not in num_dict:
num_dict[num] = {i}
# 如果数字已经在字典中,则将其出现的数组编号更新为当前小数组的编号
else:
num_dict[num].add(i)
# 初始化新数组
new_arr = []
# 遍历字典中的每个键值对
for num, arr_set in num_dict.items():
# 如果数字在原数组中只出现过一次,则将其加入新数组中
if len(arr_set) == 1:
new_arr.append(num)
# 输出结果
print(new_arr)
```
输出结果为:
```
[10, 13, 14, 15, 20]
```
其中,新数组中的每个数字都在这十个数组中都不重复出现。
阅读全文