loading...

How do you find all pairs of an integer array whose sum is equal to a given number?

mu profile image muTheTechie ・1 min read
input = [10,18,20,5,11,2,10,15]
sum = 20

length = len(input) 
for i in range(length): 
  for j in range(i+1, length):
    if(input[i] + input[j] == sum):
      print(input[i], input[j])

and the output is

10 10
18 2
5 15

Discussion

pic
Editor guide
 

Another solution would be to use a map(or a dictionary in python, AFAIK) where each key would follow this rule: sum - list[i];

for (let i = 0; i < len; i++) {
   const k = sum-list[i];
  if (map.has(k))
     console.log(k, map.get(k))
  else map.set(k, list[i]);
}