面试题答案
一键面试- 优化思路:
- 列表的
in
操作时间复杂度为$O(n)$,对于数百万个元素的列表,每次判断性能较低。 - 可以将列表转换为集合(
set
),集合的in
操作时间复杂度为$O(1)$(平均情况),这样能大大提高判断某个值是否存在的性能。
- 列表的
- Python代码实现:
big_list = [i for i in range(1000000)] # 模拟包含数百万个元素的大列表
big_set = set(big_list)
value_to_check = 500000
if value_to_check in big_set:
print(f"{value_to_check} 存在于集合中")
else:
print(f"{value_to_check} 不存在于集合中")