# [Coding Challenge] Special Elements in Matrix

This coding challenge was asked in Goldman Sachs coding round.

**Problem Statement:**

Given a matrix of size m*n, m denotes the row starting with index 0 and n denotes the column starting with index 0.

The matrix will hold distinct integers as elements.

We need to find a distinct number of positional elements which are either the minimum or maximum in their corresponding row or column.

Please return -1 if any row or any column has multiple minimum or maximum elements.

For example, given a matrix of size 3*3, the elements are stored as follows.

1 3 4 5 2 9 8 7 6

The expected output is 7.

In the above example, we identified the output as 7 based on below.

1 - minimum in row and column 4 - Maximum in row 2 - Minimum in column and row 9 - Maximum in row and column 8 - Maximum in row and column 7 - Maximum in column 6 - Minimum in row

**Input:**

m - integer - number of rows n - integer - number of columns m * n matrix

**Output:**

r - integer - result

**Constraints:**

0<m,n<100 Elements in the matrix are positive integers.

#### Programming Solution in Python:

```
import math
import os
import random
import re
import sys
# Complete the countSpecialElements function below.
def countSpecialElements(matrix):
nRows= len(matrix)
nCount=0
for row in matrix:
for indexCol, element in enumerate(row):
if element==min(row) or element==max(row):
if row.count(element)>1:
return -1
nCount=nCount+1
else:
listColumn=[]
for indexRow in range(0, nRows):
listColumn.append(matrix[indexRow][indexCol])
if element==min(listColumn) or element==max(listColumn):
if listColumn.count(element)>1:
return -1
nCount=nCount+1
return nCount
if __name__ == '__main__':
nCount = countSpecialElements([[1, 3, 4],[5, 2, 9],[8, 7, 6]])
print(nCount)
```

**Output:**

7

In Python, matrix elements are stored as a nested list. To solve this kind of problem, you should have a good understanding of the list and its methods.

If you are solving this coding question in a competitive test round, consider all boundary cases.

There was one more question was asked in Goldman Sachs coding round- Secure My Conversation.

## Comments

## Ravi

The output of your code is 10, not 9.

## Aniruddha Chaudhari

Edited. Thanks for the correction, Ravi!

## Moksha Jain

Sir, there is a mistake in code…of indentation inside else block…

the correct output is 7.

Thanks

## Aniruddha Chaudhari

Thanks for the correction, Moksha! Indentation is fixed.