Ram*_*Ram -1 arrays intersection
我有一个数组的数组,大小是动态的,我想找到A中的公共元素。
A = [ [1,2,3], [2,4,6,1], [3,6,2,1], [1,1,1],.. ]。
对于上面的数组 A,公共元素是 1
我如何以有效的方式实现?我可以循环查找,但我想知道最有效的解决方案?
给定一个数组数组
let lists = [[1,2,3], [2, 3, 4], [3, 4, 5]]
Run Code Online (Sandbox Code Playgroud)
你可以找到常见的元素写作
let firstList = lists.first ?? []
let commonElements = lists.reduce(Set(firstList)) { (result, list) in
result.intersection(list)
}
Run Code Online (Sandbox Code Playgroud)
结果
print(commonElements) // [3]
Run Code Online (Sandbox Code Playgroud)