有人能告诉我如何解决这个问题吗?我有两个数组,数组1改变值,数组2必须与第一个同步,但不丢失值的位置。我已经尝试了difference(from:)
,但它重新排序数组2的值。在这里,因为它应该是,非常感谢您的帮助。
let array1 = ["01", "06", "17", "22", "33", "45", "04"]
var array2 = ["04", "17", "22", "10", "01", "34"]
//
...
// Result
var array2 = ["04", "17", "22", "01", "06", "33", "45"]
数组2中值的顺序必须保持不变,删除数组1中缺少的值,并将数组1中缺少的值添加到数组2的末尾。
2条答案
按热度按时间mkshixfv1#
天真的解决方案:
1.将array1复制到临时变量
temp
1.以相反顺序循环
temp
的索引。如果temp
中的值存在于array2中,则将其移除。1.将
temp
附加到数组2。对于大型数组来说,这会有很差的时间性能(大约是
O(n^2)
,或者更确切地说是O(array1.count*array2.count)
),因为数组contains()
的函数是O(n)
。可以通过使用一个集合来跟踪array2
中的项来加速它。cgh8pdjw2#
这是我能得到的最好的解决方案😉