Lazy loaded image
LC454.四数相加Ⅱ
00 min
2024-12-25
Completed
Dec 25, 2024
标签
哈希表
相关企业
难度
中等
  • 题目描述:给定四个数组,判断从里各取出一个数字相加为0的元组(i,j,k,l)有几个,返回数量
  • 代码思路:暴力解法四层循环,复杂度高。由于题目没要求返回元组,只要求返回数量,因此可以只计算各种排列组合有多少种。使用HashMap1记录数组1和数组2的各种组合,value记录数量,如下。同理用HashMap2记录数组3和数组4。最后遍历两个map,当key相加等于0时,此时的value相乘即是可能的组合
  • 这里用了简便写法,第一个循环记录nums1和nums2的组合和数量
  • 不需要再对nums3和nums4进行相同操作。第二个两层循环遍历nums3和nums4的所有组合,对每一个组合都去map1中找目标值,res记录当前组合对应的map1中的value值,累加求和即为答案
上一篇
空白文章
下一篇
示例文章