1 解题思想
首先,这是一道远古之前的题的进化版:
Leetcode #18 4Sum 四数之和 解题小节+K-Sum思想
但是我不想说那个题了,因为我也记不住了。。
这道题意思就是ABCD四个数组,长度相同,现在问题你说分别从这四个数组中各挑一个数相加其和为0,有几种方式?
首先这道题肯定不能四层循环遍历。
我的做法是:
将四数转变为两个部分,首先遍历AB的组合(任意两个都可以),存下他们组合后的和的情况,然后遍历CD(另外两个)的和,看之前AB遍历的组合里有没有与此时值相反的值,有的话就加上AB中这个相反数出现的次数。
这个做法应该和之前#18的不太一样。。
2 原题
Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero.
To make problem