ppround 发表于 2025-9-23 11:29:13

集合

甘棠 发表于 2025-9-24 10:16:08

答案是什么呢

arcarlie 发表于 2025-9-28 16:16:40

学习一下

余宏伟 发表于 2025-10-1 16:30:45

haystack = set(haystack)

wxw2015 发表于 3 天前

AI说加这一行#在注释处添加这行代码:
python
haystack = set(haystack)
```


原话:在注释处添加这行代码:

```python
haystack = set(haystack)
```

**解释:**

原始代码使用列表进行查找,时间复杂度为 O(n),每次 `each in haystack` 都需要遍历整个列表。对于 1000 次查找,总时间复杂度约为 O(1000 × 10,000,000) = 10^10 次操作。

转换为集合后,查找操作的时间复杂度变为 O(1),总时间复杂度约为 O(1000) 次操作。

**效率提升计算:**
- 列表查找:约 10^10 次比较
- 集合查找:约 1000 次哈希查找
- 提升倍数:约 10^10 / 10^3 = 10^7 倍(1000万倍)

这远远超过了要求的 10000 倍效率提升。

**注意:** 这行代码要放在 haystack 和 needles 定义之后,find() 函数之前。

Deninyu 发表于 前天 10:44

{:5_109:}

xut 发表于 昨天 09:02

haystack.sort()

xut 发表于 昨天 09:04

xut 发表于 2025-10-8 09:02
haystack.sort()

set 的 in 操作基于哈希表,平均时间复杂度为 O(1)

xut 发表于 昨天 09:05

xut 发表于 2025-10-8 09:04
set 的 in 操作基于哈希表,平均时间复杂度为 O(1)

老师牛逼,学到了。谢谢。

如默 发表于 昨天 09:52

感谢分享
页: 27 28 29 30 31 32 33 34 35 36 [37]
查看完整版本: 添加一行代码,提高10000倍以上的执行效率