Python 练习 LeetCode 哈希表

Python 练习 LeetCode 哈希表

整理 LeetCode 哈希表题目的 Python 解答。保持更新
刷题顺序参考:https://www.jianshu.com/p/460edbe3dc36

题目分类 题目编号
有一些题目不是用哈希表解的,但是和其他哈希表解的题目是类似的问题,修改了一部分条件
哈希表的查找、插入及删除 217、633、349、128、202、500、290、532、205、166、466、138
哈希表与索引 1、167、599、219、220
哈希表与统计 594、350、554、609、454、18
哈希表与前缀和 560、523、525

1. 哈希表的查找、插入及删除

1-1 哈希表用于随机链表复制 (138)

138 哈希表记录随机指针信息;拼接+拆分得到新链表

2. 哈希表与索引

和前一部分相比,哈希表存储的数据为索引值

2-1 数组的两数之和问题 (1, 167)

1 暴力枚举;哈希表。适用于无序数组
167 二分查找;双指针。适用于有序数组

2-2 查找重复元素 (219, 220)

219 哈希表 < 指针窗口
220 指针窗口 << 红黑树 < 桶排序

3. 哈希表与统计

3-1 哈希表统计 (594, 454)

594 遍历枚举 < 哈希表统计
这里在 Python 中可以用 collections.Counter() 函数高效完成哈希表统计,比字典推导式快很多
454 分组哈希
collections.Counter() 函数可以遍历多个数组
count_dict = Counter(u + v for u in nums1 for v in nums2)
collections.Counter() 函数的一些使用方法:https://leetcode.cn/problems/4sum-ii/solutions/944357/si-wei-dao-tu-zheng-li-xiang-jie-counter-nw0f/
类似题目:18 排序+双指针
这一题如果先做了三数之和再做思路会清楚一点。有时如果算法复杂度很高的话,能优化到 O(n3) 就很好了

4. 哈希表与前缀和

4-1 前缀和 + 哈希表优化 (560, 523)

560 题解思路 560 Python 题解 枚举 < 前缀和+哈希表优化
523 题解思路 523 Python 题解 前缀和+哈希表优化

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值