普通版本的Two Sum 用一个HashMap, 然后iterate array一次就可以了。但是找K pair two sum 难的多。
比如说[1,2,3,1,8,1] 找 sum = 2的。 有[1,1], [1,1], [1,1] 三组。
这里要用到类似于3 Sum的双指针算法。 首先给Array排序, 排序完以后 用两个指针, front & end走.
每一轮 front 会把end指针不断往前移动找出所有以当前front 为一个element,end 另一个的符合target的组合。
然后front 移动下一位,end repeat process。。。
O(nlogn)