Check out example codes for "best possible run time for finding a pair of elements whose sum equals k". It will help you in understanding the concepts better.

Code Example 1

``````/* Java implementation of simple method to find count of
pairs with given sum*/

import java.util.HashMap;

class Test
{
static int arr[] = new int[]{1, 5, 7, -1, 5} ;

// Returns number of pairs in arr[0..n-1] with sum equal
// to 'sum'
static int getPairsCount(int n, int sum)
{
HashMap<Integer, Integer> hm = new HashMap<>();

// Store counts of all elements in map hm
for (int i=0; i<n; i++){

if(!hm.containsKey(arr[i]))
hm.put(arr[i],0);

hm.put(arr[i], hm.get(arr[i])+1);
}
int twice_count = 0;

// iterate through each element and increment the
// count (Notice that every pair is counted twice)
for (int i=0; i<n; i++)
{
if(hm.get(sum-arr[i]) != null)
twice_count += hm.get(sum-arr[i]);

// if (arr[i], arr[i]) pair satisfies the condition,
// then we need to ensure that the count is
// decreased by one such that the (arr[i], arr[i])
// pair is not considered
if (sum-arr[i] == arr[i])
twice_count--;
}

// return the half of twice_count
return twice_count/2;
}

// Driver method to test the above function
public static void main(String[] args) {

int sum = 6;
System.out.println("Count of pairs is " +
getPairsCount(arr.length,sum));

}
}
// This code is contributed by Gaurav Miglani``````

Learn ReactJs, React Native from akashmittal.com