Swift 与多个数组相交

Swift intersect multiple array

我有一个数组的数组,大小是动态的,我想找到A中的公共元素。

A = [ [1,2,3], [2,4,6,1], [3,6,2,1], [1,1,1],.. ].

For above Array A the common element is 1

我怎样才能高效地实现目标?我可以循环查找,但我想知道最有效的解决方案?

给定一个数组数组

let lists = [[1,2,3], [2, 3, 4], [3, 4, 5]]

你可以找到写

的共同元素
let firstList = lists.first ?? []

let commonElements = lists.reduce(Set(firstList)) { (result, list)  in
    result.intersection(list)
}

结果

print(commonElements) // [3]