斯威夫特相交多个数组

时间:2020-04-13 10:32:39

标签: arrays intersection

我有一个数组数组

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

A的大小是动态的。我想在A.中找到共同点。如何有效实现目标?我可以循环查找,但是我想知道最有效的解决方案?

1 个答案:

答案 0 :(得分:2)

给出一个数组数组

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]
相关问题