一、454.四数相加II
题目链接:
学习前:
思路:
-
首先定义两个HashMap对象record12和record34,对应的key存放两个数组元素的和,value存放计算的和出现的次数
-
接着遍历record12,若record存在与之和为0的元素,则计算两个value相乘的结果,并进行累积,作为输出的结果
时间复杂度:O(n^2)
空间复杂度:O(n^2)
学习后:
可以只定义一个HashMap对象,整体遍历两次,将后两个遍历一次性完成,降低时间复杂度
二、383. 赎金信
题目链接:
学习前:
思路:
- 与"LeetCode242.有效的字母异位词"的思路一致,定义一个长度为26的int数组,每个下表对应每个小写字符,值为小写字符出现的次数
- 对于ransom进行自增运算,对于magazine进行自减运算,最后对record进行判断,若所有的值均飞正,则返回true,反之false
时间复杂度:O(n+m)
空间复杂度:O(1)
学习后:
增加了对ransom和magazine长度的判断,一方面进行了优化,一方面更加严谨
三、15. 三数之和
题目链接:
思路混乱,暂时跳过
四、18. 四数之和
题目链接:
思路混乱,暂时跳过
五、学习总结
- 时间:1h
- 复习了哈希法的三种数据结构