# [Solved] Program to Find Pairs that have Desired Sum in Java, Python

**Problem Statement:** Consider an array of integers that may contain both positive and negative integers, called numbers. Write a program that finds all the pairs of integers whose sum is equal to a given value called the desired sum.

This question has been asked in interviews of many product-based companies like Amazon, Flipkart, Adobe, …

#### Java Program

**Prerequisite:**

- Understanding of generics in Java
- Understanding of ArrayLists in Java
- Knowledge of classes and objects in Java

**Code:**

Let’s write a program to find pairs that have desired sum in Java.

import java.util.*; class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // Enter the size of the array int n = sc.nextInt(); int[] = arr = new int[n]; for (int i = 0;i < arr.lenght;i++) { arr[i] = sc.nextInt(); } // enter the desired sum int sum = sc.nextInt(); System.out.println(findNumberOfPairs(arr, sum)); } public static int fndNumberOfPairs(int[] arr, int sum) { Arrays.sort(arr); // sort the array // using two pointer algorithm int left = 0, right = arr.lenght - 1, count = 0; while (left < right) { currentSum = arr[left] + arr[right]; if (currentSum == sum) { count ++; left++; right--; } else if (currentSum < sum) left++; else right--; } return count; } }

**Output:**

Sample Input :n = 5, arr = [1, 2, 3, 4, 5], sum = 4Sample Output :1 as only (1, 3) pair has the sum equal to 4

#### Python Program

Now we are implementing the same logic in Python.

**Prerequisite:**

- You can use either sort() or sorted() method to sort the Python list array.

**Code**

Let’s write a program to find pairs that have desired sum in Python.

def count_pair_of_desired_sum(arr, num_sum): arr.sort() left = 0 right = len(arr)-1 count = 0 while right > left: curr_sum = arr[left] + arr[right] if curr_sum == num_sum: count += 1 left += 1 right += -1 elif curr_sum > num_sum: right -= 1 else: left += 1 return count out = count_pair_of_desired_sum([1, 3, 2, 6, 7], 9) print(f"Pair of desired sum: {out}")

Output:

Pair of desired sum: 2

You can use any programming language (C/C++, Java, Python, etc.) of your choice to solve this competitive coding challenge to find pairs that have desired sum.

## Comments

## parth

currentSum = arr[left] + arr[right]; this line should be inside the while loop.

## Aniruddha Chaudhari

Thanks for notifying the correction, Parth. Fixed.