# Check if a pair with given absolute difference exists in a Matrix

Given an N×M matrix and a difference K. The task is to check if a pair with the given absolute difference exists in the matrix or not.
Examples

```Input: mat[N][M] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 100}};
K = 85
Output: YES

Input: mat[N][M] = {{1, 2, 3, 4},
{5, 6, 7, 8}};
K = 150
Output: NO
```

Approach:

• Initialize a hash-map to keep track of already visited elements of the matrix.
• Iterate over the matrix and check if the difference of the current element and k is already present in the hash-map. If yes then the current element and the difference of the element with k is the desired pair.
• Otherwise, Add the current element into the map.

Below is the implementation of the above approach:

## C++

 `// CPP code to check for pair with given ` `// difference exists in the matrix or not `   `#include ` `using` `namespace` `std; `   `#define N 4 ` `#define M 4 `   `// Function to check if a pair with given ` `// difference exists in the matrix ` `bool` `isPairWithDiff(``int` `mat[N][M], ``int` `k) ` `{ ` `    ``unordered_set <``int``> ump ;` `   `  `    ``// Loop to iterate over the matrix` `    ``for``( ``int` `i = 0 ; i < N  ; i++ )` `    ``{` `        ``for``( ``int` `j =0 ; j < M ; j++ )` `        ``{` `            ``if``( mat[i][j] > k )` `            ``{` `                ``int` `m = mat[i][j] - k ;` `                `  `                ``if``( ump.find(m) != ump.end() )` `                ``{` `                    ``return` `true` `;` `                ``}` `            ``}` `            ``else` `            ``{` `                ``int` `m = k - mat[i][j] ;` `                `  `                ``if``( ump.find(m) != ump.end() )` `                ``{` `                    ``return` `true` `;` `                ``}` `            ``}` `            ``ump.insert(mat[i][j]);` `        ``}` `    ``}` `  ``return` `false``;` `} `   `// Driver Code ` `int` `main() ` `{ ` `    ``// Input matrix ` `    ``int` `mat[N][M] ={ { 5, 2, 3, 4 },` `                    ``{ 5, 6, 7, 8 },` `                    ``{ 9, 10, 11, 12 },` `                    ``{ 13, 14, 15, 100 } }; `   `    ``// Given difference ` `    ``int` `k = 85; `   `    ``if` `(isPairWithDiff(mat, k)) ` `        ``cout << ``"YES"` `<< endl;     ` `    ``else` `        ``cout << ``"NO"` `<< endl; `   `    ``return` `0; ` `}`

## Java

 `// Java code to check for pair with given` `// difference exists in the matrix or not` `import` `java.util.*;`   `class` `GFG ` `{`   `static` `final` `int` `N = ``4``;` `static` `final` `int` `M = ``4``;`   `// Function to check if a pair with given` `// difference exists in the matrix` `static` `boolean` `isPairWithDiff(``int` `mat[][], ``int` `k)` `{` `    ``// Store elements in a hash` `    ``HashSet s = ``new` `HashSet();` `  `  `    ``// Loop to iterate over the ` `    ``// elements of the matrix` `    ``for` `(``int` `i = ``0``; i < N; i++) ` `    ``{` `        ``for` `(``int` `j = ``0``; j < M; j++) {` `            ``if``( mat[i][j] > k )` `            ``{` `                ``int` `m = mat[i][j] - k ;` `                `  `                ``if``(s.contains(m))` `                ``{` `                    ``return` `true` `;` `                ``}` `            ``}` `            ``else` `            ``{` `                ``int` `m = k - mat[i][j] ;` `                `  `                ``if``(s.contains(m))` `                ``{` `                    ``return` `true` `;` `                ``}` `            ``}` `            ``s.add(mat[i][j]);     ` `        ``}` `    ``}  ` `            `  `    ``return` `false``;` `}`   `// Driver Code` `public` `static` `void` `main(String[] args)` `{` `    ``// Input matrix` `    ``int` `mat[][] = { { ``5``, ``2``, ``3``, ``4` `},` `                    ``{ ``5``, ``6``, ``7``, ``8` `},` `                    ``{ ``9``, ``10``, ``11``, ``12` `},` `                    ``{ ``13``, ``14``, ``15``, ``100` `} };`   `    ``// Given difference` `    ``int` `k = ``85``;`   `    ``System.out.println(` `      ``isPairWithDiff(mat, k) == ``true` `? ` `      ``"YES"` `: ``"NO"``); ` `}` `}`   `// This code contributed by Rajput-Ji`

## Python3

 `# Python 3 program to check for pairs ` `# with given difference exits in the ` `# matrix or not ` `N ``=` `4` `M ``=` `4`   `# Function to check if a ` `# pair with given` `# difference exist in the matrix` `def` `isPairWithDiff(mat, k):` `    `  `    ``# Store elements in a hash` `    ``s ``=` `set``()` `    `  `    ``# Store elements in dict ` `    ``for` `i ``in` `range``(N):` `        ``for` `j ``in` `range``(M):` `            ``if` `mat[i][j] > k:` `                ``m ``=` `mat[i][j] ``-` `k` `                ``if` `m ``in` `s:` `                    ``return` `True` `            ``else``:` `                ``m ``=` `k ``-` `mat[i][j]` `                ``if` `m ``in` `s:` `                    ``return` `True` `            ``s.add(mat[i][j])` `    `  `    ``return` `False`        `    `  `# Driver Code` `n, m ``=` `4``, ``4` `mat ``=` `[[``5``, ``2``, ``3``, ``4``],` `       ``[``5``, ``6``, ``7``, ``8``],` `       ``[``9``, ``10``, ``11``, ``12``],` `       ``[``13``, ``14``, ``15``, ``100``]]` `    `  `# given difference` `k ``=` `85`   `if` `isPairWithDiff(mat, k):` `    ``print``(``"Yes"``)` `else``:` `    ``print``(``"No"``)`   `# This code is contributed by` `# Mohit kumar 29 (IIIT gwalior)`

## C#

 `// C# code to check for pair with given` `// difference exists in the matrix or not` `using` `System;` `using` `System.Collections.Generic; ` `    `  `class` `GFG ` `{`   `static` `int` `N = 4;` `static` `int` `M = 4;`   `// Function to check if a pair with given` `// difference exists in the matrix` `static` `Boolean isPairWithDiff(` `             ``int` `[,]mat, ``int` `k)` `{` `    ``// Store elements in a hash` `    ``HashSet<``int``> s = ``new` `HashSet<``int``>();` `    ``for` `(``int` `i = 0; i < N; i++) ` `    ``{` `        ``for` `(``int` `j = 0; j < M; j++) ` `        ``{` `            ``if``( mat[i, j] > k )` `            ``{` `                ``int` `m = mat[i, j] - k ;` `                `  `                ``if``(s.Contains(m))` `                ``{` `                    ``return` `true` `;` `                ``}` `            ``}` `            ``else` `            ``{` `                ``int` `m = k - mat[i, j];` `                `  `                ``if``(s.Contains(m))` `                ``{` `                    ``return` `true` `;` `                ``}` `            ``}` `            ``s.Add(mat[i, j]);   ` `        ``}` `    ``}` `            `  `    ``return` `false``;` `}`   `// Driver Code` `public` `static` `void` `Main(String[] args)` `{` `    ``// Input matrix` `    ``int` `[,]mat = { { 5, 2, 3, 4 },` `                    ``{ 5, 6, 7, 8 },` `                    ``{ 9, 10, 11, 12 },` `                    ``{ 13, 14, 15, 100 } };`   `    ``// Given difference` `    ``int` `k = 85;`   `    ``Console.WriteLine(` `      ``isPairWithDiff(mat, k) == ``true` `? ` `      ``"YES"` `: ``"NO"``); ` `}` `}`   `/* This code contributed by PrinciRaj1992 */`

Output

```YES
```

Time Complexity: O(N*M)
Auxiliary Space: O(N*M)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.