day 6 第三章 哈希表

87 阅读2分钟

242.有效的字母异位词

建议: 这道题目,大家可以感受到 数组 用来做哈希表 给我们带来的遍历之处。

题目链接/文章讲解/视频讲解: programmercarl.com/0242.%E6%9C…

解题过程

这题也是刚开始没有思路,看完视频讲解后豁然开朗成功写出。学习了ord()函数。

349. 两个数组的交集

建议:本题就开始考虑 什么时候用set 什么时候用数组,本题其实是使用set的好题,但是后来力扣改了题目描述和 测试用例,添加了 0 <= nums1[i], nums2[i] <= 1000 条件,所以使用数组也可以了,不过建议大家忽略这个条件。 尝试去使用set。

题目链接/文章讲解/视频讲解:programmercarl.com/0349.%E4%B8…

解题过程

看到这题的python解法笑翻了,直接return可还行。我还是按照解题思路写了个python解法。 很神奇的是, resSet定义成set, 然后遍历第二个数组,把元素加进去, 返回set 比 res 定义成list,元素append到list,然后返回set(list) 慢

202. 快乐数

建议:这道题目也是set的应用,其实和上一题差不多,就是 套在快乐数一个壳子

题目链接/文章讲解:programmercarl.com/0202.%E5%BF…

解题过程

学会了取个位操作是 num % 10 然后num // 10

// 和 / 区别 单斜杠(/)表示除法,且不管除数和被除数是不是整数,最后结果都是float类型。 双斜杠(//)表示地板除,即先做除法(/),然后向下取整(floor)。至少有一方是float型时,结果为float型;两个数都是int型时,结果为int型。

1. 两数之和

建议:本题虽然是 力扣第一题,但是还是挺难的,也是 代码随想录中 数组,set之后,使用map解决哈希问题的第一题。

建议大家先看视频讲解,然后尝试自己写代码,在看文章讲解,加深印象。

题目链接/文章讲解/视频讲解:programmercarl.com/0001.%E4%B8…

解题过程

一开始都没想懂为啥要用hashmap,看完视频很理解了。这题得二刷