gpt4 book ai didi

ios - 从 Swift 3 中的字典中删除重复值

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:05:39 25 4
gpt4 key购买 nike

你好,我有一本字典,我只想像这样删除重复值(使用它们的键):

var myDict : [Int:String] = [1:"test1", 2:"test2", 3:"test1", 4:"test4"]

期望的输出:

[1: "test1", 2: "test2", 4: "test4"]

最佳答案

在我看来,所有其他答案的性能都是 O(n^2)。

这是一个应该在 O(n) 时间内运行的解决方案:

var sourceDict = [1:"test1", 2:"test2", 3:"test1", 4:"test4"]

var uniqueValues = Set<String>()
var resultDict = [Int:String](minimumCapacity: sourceDict.count)

//The reserveCapacity() function doesn't exist for Dictionaries, as pointed
//out by Hamish in the comments. See the initializer with minimumCapacity,
//above. That's the way you have to set up a dictionary with an initial capacity.
//resultDict.reserveCapacity(sourceDict.count)

for (key, value) in sourceDict {
if !uniqueValues.contains(value) {
uniqueValues.insert(value)
resultDict[key] = value
}
}

对于小型字典来说,差异是微不足道的,但是如果您有一个包含数百(或数千)键/值对的字典,那么 n^2 算法的性能开始变得非常糟糕。

关于ios - 从 Swift 3 中的字典中删除重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43306110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com