#454. 四数相加 II
得到满足 A[i]+B[j]+C[k]+D[l]=0A[i]+B[j]+C[k]+D[l]=0 的四元组数目
将四个数组分成两部分,AA 和 BB 为一组,CC 和 DD 为另外一组
# 分两步计算 # 第一步计算nums1和nums2中相加的值,值作为key,每个值出现的次数作为value存入哈希表record # 第二步计算nums3和nums4中相加的值,计算-(nums3+nums4),如果其在record中出现,则count统计出现的次数 # 对于每个-(nums3+nums4),都统计其在record中出现的次数 # 数组的长度1 <= n <= 200
class Solution(object): def fourSumCount(self, nums1, nums2, nums3, nums4): """ :type nums1: List[int] :type nums2: List[int] :type nums3: List[int] :type nums4: List[int] :rtype: int """ # 分两步计算 # 第一步计算nums1和nums2中相加的值,值作为key,每个值出现的次数作为value存入哈希表record # 第二步计算nums3和nums4中相加的值,计算-(nums3+nums4),如果其在record中出现,则count统计出现的次数 # 对于每个-(nums3+nums4),都统计其在record中出现的次数 # 数组的长度1 <= n <= 200 record = {} for i in range(len(nums1)): for j in range(len(nums2)): sum1 = nums1[i] + nums2[j] if sum1 in record: record[sum1] += 1 else: record[sum1] = 1 count = 0 for k in range(len(nums3)): for l in range(len(nums4)): sum2 = -(nums3[k] + nums4[l]) if sum2 in record: count += record[sum2] return count
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)