gpt4 book ai didi

arrays - 是否有 O(1) 方法可以从 Swift 集合中删除 nil 值?

转载 作者:行者123 更新时间:2023-12-04 10:10:12 24 4
gpt4 key购买 nike

我在考虑定制 Collection , 就像是:

for i in [1, 2, nil].nilValuesRemoved() {
print(i)
}

会打印:
1
2

实际 .nilValuesRemoved()电话是 O(1) ,类似的方式 .reverse()作品。那可能吗?

最佳答案

这是一个懒惰的 compactMap:

for i in ([1, 2, nil].lazy.compactMap{$0}) {
print(i)
}

这将创建一个 LazyMapSequence在 O(1) 中。
.lazy是这个问题的通用解决方案,使应用程序 O(1) 并避免中间分配,代价是使多次迭代更加昂贵。

这个问题的标题可能会让一些读者感到困惑,尽管这个问题很清楚。明确地说:实际上迭代结果仍然是 O(n),就像迭代 .reverse() 的结果一样即使调用 .reverse() 也是 O(n)是 O(1)。

关于arrays - 是否有 O(1) 方法可以从 Swift 集合中删除 nil 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61367119/

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