力扣题目:242.有效的字母异位词
刷题时长:15min
问题总结
- 做后一步条件判断出错。不能通过求和为0来判断ht中所有元素均为0。
- Python语法不熟:1)ASCII转换的函数,2)一个if判断列表元素数值
本题收获
- Python语法for循环可以遍历string,无需转换为list后遍历
- 无需记住字母a的ASCII数值,可通过ord(i)-ord(a)得到相对数值
- 操练了映射到数组的哈希表解法。学习了利用collections库内的defaultdict和Counter函数,映射到key-value结构的解题方法。
力扣题目:349. 两个数组的交集
刷题时长:5min
问题总结
本题收获
- 可利用set存放结果直接将答案去重
- 操练了映射到set的哈希表解法。学习了映射到dict的解法,以及利用0和1赋值给dict.keys做去重处理。
力扣题目:202. 快乐数
刷题时长:40min
问题总结
- 局部变量错写成全局变量,导致陷入了死循环
- 时间主要耗在了思考如何读取数字的每个digit
本题收获
- 独立编写读取出数字每一位上的数值
- 练习了利用哈希表set判断是否已陷入循环并跳出
力扣题目:1. 两数之和
刷题时长:10min
问题总结
- 没能想到用哈希表解题的思路
本题收获
- 如何想到用哈希表:需要通过一次遍历数组的过程中查询target的comp是否已经访问过
- 为何用dict实现哈希表:需要访问元素的数值,及其对应的索引值
- 本题的dict的作用:存数组中已访问过的元素,避免多层循环重复遍历
- dict中key和value分别存什么:key存元素值,value存索引值