【发布时间】:2017-10-07 23:46:09
【问题描述】:
我们可以在 Swift 中使用 reversed 函数来反转一个数组,下面是例子:
let numbers = [3, 5, 7]
let reversedNumbers = Array(numbers.reversed())
print(reversedNumbers)
// Prints "[7, 5, 3]"
这是链接:Array reversed()
在讨论部分的最后,它说复杂度 O(1),我相信这是关于时间复杂度的,如何反转一个数组需要 O(1) 时间?
【问题讨论】:
-
如果您阅读了该页面上的所有文字,您会注意到
reversed提供了数组的反向视图。它不会反转数组,也不会创建一个新数组。 -
它返回一个
ReversedRandomAccessCollection,它只是底层数组的一个反向视图(比较stackoverflow.com/q/39547399/2976878)。但是说Array(numbers.reversed())将通过遍历该视图创建一个新数组,O(n) 也是如此。 -
@Hamish,@Molbdnilo 谢谢。明白了。