Print pairs with given sum

Share

Problem: For a given array of positive or negative integers, find all pairs possible with given input sum.

Problem Explanation: For a given array a ={4, -3, 8, 1, 6, 2} and desired sum 10, there are only two pairs {6, 4} and {2, 8}.

Java Implementation

   public void pairCountForInputSum(int arr[], int requiredSum) {

        Map<Integer, Integer> hashMap = new HashMap<Integer, Integer>();
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            
            if (hashMap.get(arr[i]) != null) {
                count++;
                System.out.println("{" + arr[i] + "," + hashMap.get(arr[i]) + "}");
            } else {
                hashMap.put(requiredSum - arr[i], arr[i]);
            }
            
        }

        System.out.println("Total pairs: " + count);
   }

TimeComplexity: O(n)

Note: If you find any other better way to approach to this problem or you find any issue/error in above code snippets/approaches – please share it in the comments section below and get a chance to enrol free of cost for an online Live Data Structure and Algorithm course (specially designed for interview preparation for software companies like Amazon, Google, Facebook, FlipKart, SnapDeal, HealthKart…)