简短而简单的问题。我一直在研究编码面试的时间复杂性,我找不到一个简洁的答案。我知道这个问题是存在的。What is the time complexity of Python List Reverse?。你知道吗
Python有两种方法循环遍历列表。你可以通过列表.反转()在时间复杂度为O(n)时将列表反转到位,或者可以在反转列表中循环。我的问题是:使用reversed(list)是否也会带来复杂性O(n)?你知道吗
我可以想象两个可能的答案,要么它实际上反转列表(在这种情况下,我会说:是的,它确实添加了O(n)),要么它只是从另一边循环列表(在这种情况下,我会说,不:它没有)。有人能给我一个明确的答案吗?你知道吗
与python3中的许多其他函数一样,
reversed
内置函数返回一个迭代器,因此不需要额外的n
迭代。在处理big-O表示法时,这无关紧要,但你对因子感兴趣,所以不只通过一次列表。这正是这些类型的助手函数的要点。你知道吗
注意你可以用
这是一种常见的迭代方式,但是使用切片已经返回了一个列表-与
my_list.reverse
类似,还有一个额外的n
。你知道吗相关问题 更多 >
编程相关推荐