【发布时间】:2019-02-01 01:46:14
【问题描述】:
您将使用 Python 中的哪种数据结构(集合、列表或字典)来存储 1000 万个整数?查询操作包括查找数字在给定集合中出现的次数。在所有情况下,最坏情况下的时间和空间复杂度是多少?
这是一个示例面试问题。什么是最合适的答案?
【问题讨论】:
-
您不能使用
set,因为值必须是唯一的。您将需要提出更多问题,例如你需要做这个查询很多还是只做一次。有非常高的数字吗?那么其他数据结构呢?collections.Counter(多组)。如果您使用dict或Counter进行预计算,则发现计数为O(1),但预计算的设置时间为O(n)。list的空间复杂度为O(n),dict的空间复杂度取决于分布,但也可能为O(n),等等。 -
整数的范围是多少?
标签: python python-3.x data-structures