【发布时间】:2017-04-02 19:51:47
【问题描述】:
我需要从一组数组中删除所有重复项,但我们在这里以特殊方式定义“重复项”:如果两个 4 元素数组以任意顺序共享前两个元素和最后两个元素,则它们是“重复项”以任何顺序。 所以我的想法是将这些数组分成两半,对这些 2 元素半数组进行排序,然后将它们重新组合在一起以形成 4 元素数组。然后我们会有一些重复的教科书可以删除。
这是一个好方法吗?
我们从一组 6 个 4 元素数组开始,其中没有一个与另一个完全相同。
[6, 4, 3, 2]
[4, 6, 2, 3]
[3, 4, 2, 6]
[4, 3, 6, 2]
[3, 6, 2, 4]
[6, 3, 4, 2]
在中间分割每个数组
[[6, 4], [3, 2]]
[[4, 6], [2, 3]]
[[3, 4], [2, 6]]
[[4, 3], [6, 2]]
[[3, 6], [2, 4]]
[[6, 3], [4, 2]]
这是 Neo4j 中最难的部分! 仅对两个内部数组中的每一个进行排序。
[[4, 6], [2, 3]]
[[4, 6], [2, 3]]
[[3, 4], [2, 6]]
[[3, 4], [2, 6]]
[[3, 6], [2, 4]]
[[3, 6], [2, 4]]
将它们重新组合在一起。
[4, 6, 2, 3]
[4, 6, 2, 3]
[3, 4, 2, 6]
[3, 4, 2, 6]
[3, 6, 2, 4]
[3, 6, 2, 4]
使用 DISTINCT 进行重复数据删除。
[4, 6, 2, 3]
[3, 4, 2, 6]
[3, 6, 2, 4]
【问题讨论】: