我们有n个任意大小的数组,它们可能有公共元素,我们需要以这样的方式组合所有这些数组:每个元素只出现一次,元素应该按顺序排序?
null
例如:
Input : arr = [[1, 2, 2, 4, 3, 6], [5, 1, 3, 4], [9, 5, 7, 1], [2, 4, 1, 3]] Output : [1, 2, 3, 4, 5, 6, 7, 9]
A. 简单解决方案 对于这个问题,创建一个空的 搞砸 并逐个遍历每个数组,这个散列包含数组列表中每个元素的频率。现在从开始遍历散列并打印每个非零值的索引。
在这里,我们使用 Set() 数据结构和 更新() 方法。
Update()方法如何适用于set?
随便。更新(iterable) ,此方法不执行名为 随便 无论如何 可迭代的 而且它不会返回任何类似set的浅拷贝 工会() 方法,它将结果更新为前缀集,即:; 随便 .
# Function to combine n arrays def combineAll( input ): # cast first array as set and assign it # to variable named as result result = set ( input [ 0 ]) # now traverse remaining list of arrays # and take it's update with result variable for array in input [ 1 :]: result.update(array) return list (result) # Driver program if __name__ = = "__main__" : input = [[ 1 , 2 , 2 , 4 , 3 , 6 ], [ 5 , 1 , 3 , 4 ], [ 9 , 5 , 7 , 1 ], [ 2 , 4 , 1 , 3 ]] print (combineAll( input )) |
输出:
[1, 2, 3, 4, 5, 6, 7, 9]
本文由 沙申克·米什拉(古卢) .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END