当我解决这个LeetCode问题时,我遇到了一个问题.虽然我的解决方案已被系统接受,但在线搜索以下问题后我仍然不知道:
What is the time complexity of dict.keys() operation?它是否返回键的视图或键的真实列表(存储在内存中)?
use*_*ica 18
在Python 2中,它是O(n),它构建了一个新列表.在Python 3中,它是O(1),但它不返回列表.要从字典中绘制随机元素keys,您需要将其转换为列表.
听起来你可能正在使用random.choice(d.keys())该问题的第3部分.如果是这样,那就是O(n),你弄错了.您需要实现自己的哈希表或维护单独的元素列表,而不会牺牲平均情况下的O(1)插入和删除.
| 归档时间: |
|
| 查看次数: |
4435 次 |
| 最近记录: |