Given a **0-indexed** `n x n`

integer matrix `grid`

, *return the number of pairs *`(r`

_{i}, c_{j})* such that row *`r`

_{i}* and column *`c`

_{j}* are equal*.

A row and column pair is considered equal if they contain the same elements in the same order (i.e., an equal array).

**Example 1:**

Input:grid = [[3,2,1],[1,7,6],[2,7,7]]Output:1Explanation:There is 1 equal row and column pair: - (Row 2, Column 1): [2,7,7]

**Example 2:**

Input:grid = [[3,1,2,2],[1,4,4,5],[2,4,2,2],[2,4,2,2]]Output:3Explanation:There are 3 equal row and column pairs: - (Row 0, Column 0): [3,1,2,2] - (Row 2, Column 2): [2,4,2,2] - (Row 3, Column 2): [2,4,2,2]

**Constraints:**

`n == grid.length == grid[i].length`

`1 <= n <= 200`

`1 <= grid[i][j] <= 10`

^{5}

` ````
```class Solution {
public:
int equalPairs(vector>& grid) {
map,int> freq;
int n=grid.size();
int count=0;
for(auto i: grid)
{
freq[i]++;
}
for(int j=0; j helper;
for(int i=0; i

In this program, the function takes a 2D vector ‘grid’ as input, where each row represents a pair of elements, and it aims to count the number of pairs in the grid that are equal. When one column and one row are equal, it is considered a 1 element.

- We will make a hash map ‘freq’ in which we will store the count of rows. This map will be used to store the frequency of each unique pair in the grid.
- The for loop iterates through each row of the ‘grid’ and increments the frequency of each unique pair in the ‘freq’ map.
- Now we will iterate column-wise ‘grid’ to check equal pairs. For each column, we have used a vector ‘helper’ in which elements of ‘i’ and ‘j’ are pushed.
- Outside of the loop, we will increment the count by the frequency of the corresponding pair in the ‘freq’ map.

count += freq[ helper ] ;

- The total count of equal pairs is returned.

660, Sector 14A, Vasundhara, Ghaziabad, Uttar Pradesh - 201012, India