# Pair in an Array with Given Sum

“** Pair in an Array with Given Sum**” is one of the favorite technical interview problems. Here, we are given an array with ‘n’ elements and a target value ‘x’. Our task is to find a pair in an array, whose sum is equal to target value ‘x’.

**Example (Pair in an Array with given sum):**

Arr[] = {5, 7, 4, 9, 12} sum = 16INPUT:Pair is present in array with sum as 16OUTPUT:

There are multiple methods to find a pair in an array with given sum. Some of them are:

**METHOD 1: Brute-Force Approach** **to find pair in an array with given sum**

The steps required to find a pair in an array with given sum is as follows:

- Use two nested loops for the solution.
- For every element of the array, traverse the array to check whether any other element exist which sums up to ‘x’.
- If the pair exist, return ‘Yes’, else return ‘false’.

The time complexity of this solution is O(n^2), where ‘n’ is the size of the array.

**C++ Program to find a pair in an array with given sum is as follows:**

/* C++ Program to find a pair in an array with given Sum */ #include <bits/stdc++.h> using namespace std; void checkSum(int arr[],int n,int sum) { int i,j; for(i=0;i<n;i++) { int temp_sum = arr[i]; for(j=0;j<n;j++) { // Make sure not add element with itself if(i!=j) { if(temp_sum + arr[j] == sum) { cout<<"The Pair is Present in an Array with sum as "<<sum; return; } } } } cout<<"The Pair is not Present in an Array with sum as "<<sum; } int main() { int arr[5] = {1, 2, 4, 6, 8}; int sum = 12; checkSum(arr,5,sum); return 0; }

The Pair is Present in an Array with sum as 12OUTPUT:

**Method 2: Using Hashing to find Pair in an array with given sum**

The steps required to find a pair in an array with given sum is as follows:

- Create an empty ‘set’ of preferred data type (i.e., int).
- For every element of the array, if the (x-arr[i]) exists in the set, return true.
- Else return False.

The time complexity of this solution is O(nlogn), where ‘n’ is the size of the array and ‘logn’ for inserting and searching in set.

**C++ Program to find pair in an array with given sum is as follows:**

/* C++ Program to find pair in an array with given Sum */ #include <bits/stdc++.h> using namespace std; void checkSum(int arr[],int n,int sum) { /* create a set*/ set<int>st; for(int i = 0; i< n; i++) { /* Initialize temp with remaining of sum after subtracting it with arr[i] */ int temp = sum - arr[i]; /* Check if temp is present in an array or not */ if(st.find(temp) != st.end()) { cout<<"The Pair is present in the array with sum as "<<sum; return; } /* If not present, insert arr[i] into set */ st.insert(arr[i]); } cout<<"The Pair is not present in the array with sum as "<<sum; } int main() { int arr[5] = {1, 2, 4, 6, 8}; int sum = 12; checkSum(arr,5,sum); return 0; }

The Pair is present in the array with sum as 12OUTPUT:

**Related Posts:**

- Find Most Frequent Character of the String.
- Check Anagram Strings.
- Check Whether Given String is Palindromic Anagram or Not.
- Check Whether Given String is Panagram or Not.
- Find First Non-Repeating Character of the String.
- Find Most Frequent Element of the Array.
- Find First Repeating Element of an Array.
- Find Majority Element of an Array.
- Printing Linked List in Reverse Order without actually reversing the Linked List.
- Swap Adjacent Elements of the Linked List.
- Count All Occurrences of a Particular Node in a Linked List.
- Bubble Sort on Linked List.
- Detect a Loop in a Linked List.
- Find the Length of the Loop present in the Linked List.
- Detect and Remove Loop from a Linked List.
- Segregate Even and Odd Nodes in a Linked List.
- Delete Complete Linked List.
- Delete Nth Node of the Linked List.
- Delete without head pointer of the Linked List.
- Delete All Occurrences of particular node of the Linked List.