# Find the Pair with Given Sum in a Matrix using C++

C++Server Side ProgrammingProgramming

#### C in Depth: The Complete C Programming Guide for Beginners

45 Lectures 4.5 hours

#### Practical C++: Learn C++ Basics Step by Step

Most Popular

50 Lectures 4.5 hours

#### Master C and Embedded C Programming- Learn as you go

66 Lectures 5.5 hours

In this article, we will discuss the program of finding a pair with a given sum in a given matrix. For example −

Input : matrix[n][m] = {
{ 4, 6, 4, 65 },
{ 56, 1, 12, 32 },
{ 4, 5, 6, 44 },
{ 13, 9, 11, 25 }
}, SUM = 20

Output : Pair exists.
Explanation : Sum = 20 is equal to the sum of numbers 9 and 11 which exists in the matrix.

Input : matrix[n][m] = {
{ 5, 7, 3, 45 },
{ 63, 5, 3, 7 },
{ 11, 6, 9, 5 },
{ 8, 6, 14, 15 }
}, SUM = 13
Output : Pair does not exist.
Explanation : No pair exists in the matrix whose sum is equal to 7.

## Approach to find The Solution

Now we will explain two different approaches to find the solution of the above problem.

## Brute-Force Approach

Considering each pair in the given matrix and checking whether the sum of the pair is equal to the given SUM, if yes, then print “Pair exists”; otherwise, print “Pair does not exist.” Applying this approach is very simple, but it will shoot up the time complexity to O((N*M)2).

## Efficient Approach

This program can be efficient by using a hash to store all the matrix elements and then traverse through the matrix and check whether the difference of [ SUM & (index element) ] is equal. If YES, then Print “Exist” and exit the program. If NO, then after traversing print, “does not exist.”

## Example

#include <bits/stdc++.h>
using namespace std;

#define n 4
#define m 4

int main() {
int matrix[n][m] = {
{ 5,7, 3,45 },
{ 63, 5, 3, 7 },
{ 11, 6, 9, 5 },
{ 8, 6, 14, 15 }
};

int sum = 7;
unordered_set<int> hash;

for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (hash.find(sum - matrix[i][j]) != hash.end()) {
cout << "Pair exists." << endl;
return 0;
} else {
hash.insert(matrix[i][j]);
}
}
}

cout << "Pair does not exist." << endl;
return 0;
}

## Output

Pair does not exist.

## Explanation of the above code

• Declaring 2-D array and storing elements in it.
• Traversing through the array finding if (sum - matrix[i][j]) != hash.end().
• If the condition satisfies, then print “Pair exists” and return from the main function.
• Otherwise, keep traversing the array and finally print “ Pair does not exist.”

## Conclusion

In this article, we discussed finding a pair with a given sum in a matrix or 2-D array; We discussed the Brute-force approach and an Efficient approach to solve this problem. We discussed the C++ program to solve this problem. However, we can write this program in any other language like C, Java, Python, etc. We hope you find this article helpful.