哈希表--454.四数相加

36 阅读1分钟

什么时候会想到哈希法--判断在一个集合里面某个元素有没有出现过。
假设四个数组分别是A,B,C,D.我们先去遍历AB,得到A和B数组元素之和;再去遍历CD,得到C和D数组元素之和。 代码实现:

class Solution:
    def fourSumCount(self, nums1: List[int], nums2: List[int], nums3: List[int], nums4: List[int]) -> int:
        first=dict()
        tuple_num=0
        for index1,value1 in enumerate(nums1):
            for index2,value2 in enumerate(nums2):
                if value1+value2 in first:
                    first[value1+value2]+=1
                else:
                    first[value1+value2]=1
        for index3,value3 in enumerate(nums3):
            for index4,value4 in enumerate(nums4):
                if 0-value3-value4 in first:
                    tuple_num+=first[0-value3-value4]
        return tuple_num

注:本题其实无需使用enumerate,答主懒得改了~~