Sums of pairs
Write a function that takes a collection of numbers and a target number. Return all pairs of numbers found in the collection that sum up to the target number.
Examples
(sums-of-pairs [2 4 5 6] 8) ;=> [[2 6]]
(sums-of-pairs [3 2 0 1 1 5] 5) ;=> [[2 3] [0 5]]
(sums-of-pairs [1 3 2 3 4 5] 7) ;=> [[3 4] [3 4] [2 5]]
Notes
- There can be duplicate numbers.
- Each pair should be sorted.
Thanks to this site for the challenge idea where it is considered Expert level in JavaScript.
Please submit your solutions as comments on this gist.
"If clojure.math.combinatorics/combinations returned
duplicate combinations, all you'd need would be:
Sadly, clojure.math.combinatorics/multi-comb (which
supposedly returns combinations with duplicates) is
both private in the package and doesn't seem to work.
As such, you need to process the sequence yourself to
find combinations with duplicates."