哈希表、集合与计数
数据结构与算法基础#Python全栈#第五阶段#数据结构与算法基础#哈希表、集合与计数约 572 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
哈希表如何组织 Key 与 Value?
追问 哈希值、桶或槽位、相等比较与冲突处理分别有什么作用?
字典或集合的查找一定是 O(1) 吗?
追问 平均与最坏情况、哈希计算以及 Key 比较成本应如何区分?
为什么可哈希对象必须满足相等性与哈希值的一致约束?
追问 相等对象与哈希冲突有什么区别?可变业务字段为什么可能不适合参与哈希?
如何统计一组单词的出现次数?
追问 普通字典与 Counter 如何选择?大小写、空词和结果排序如何约定?
如何使用哈希表求解未排序列表的两数之和?
追问 返回两个不同位置的索引;重复数字、无解和多解如何处理?
如何求两个列表的共同元素?
追问 结果只保留唯一值与保留重复次数,是不是同一个问题?各怎样选择结构?
如何判断两个字符串是否由相同字符及相同次数组成?
追问 排序与计数各有什么成本?按 Unicode 字符精确比较时如何处理?
如何找出一组记录中的重复业务 ID?
追问 需要返回重复 ID、全部重复记录还是第一处冲突?如何维护位置?
如何按部门为用户分组,并保持输入顺序?
追问 defaultdict 与普通字典分别怎样使用?缺失部门和重复用户如何约定?
一次性查找与重复查找,是否应该都先建立哈希索引?
追问 索引构建、额外内存、查询次数和数据更新如何影响收益?
计数与分组工具可参考 Python 官方 collections 文档,同时说明所需的顺序与重复语义。