python-3.x - zip(*a[::-1]) 的时间/空间复杂度是多少?
问题描述
如果a
是一个List[List[int]]
表示一个✕n 的矩阵,那么 的时间和空间复杂度是a = zip(*a[::-1])
多少?
我的想法
- 时间复杂度必须至少为 O(n^2),因为我们接触了 n^2 个元素。我猜每个元素都被触摸了两次(反转/翻转
a[::-1]
和转置zip(*reversed)
) list(zip(*a[::-1]))
返回一个副本,因此空间复杂度至少为 n^2。但是 zip 返回一个迭代器,因此我不确定。- 我对空间复杂度特别不确定,因为我读到它
zip(*inner)
解包了内部迭代(source)。我的猜测是它额外存储到输入 O(n) 以保存 n 个内部“解包”迭代器的指针。但我对此非常不确定。