Question:
Suppose you have a million integer numbers.
Return all possible values of a,b and c such thata+b+c<=d.
d will be provided to you.
ex: if the numbers are 1,2,3,4,5,6,7
and d=7
[1,2,3]
[1,2,4]
[1,2,3] will be same as [1,3,2] and [3,2,1]...
follow up:
Return all such parts that satisfy the above condition if d is not provided.
Solution:
k-sum的问题一般有两种解法.
第一种:1)排序2)固定k-2个数位置3)两个指针分别从前往后和从后往前移动.
第二种:缓存k/2的数的和(和为key,数字为值),然后对剩余k/2个数遍历.
这题说到million,不知道有没有额外的技巧.望高人回答.