Given a N x N square matrix arr[][] which contains only integers between 1 and N, the task is to compute the number of rows and the number of columns in the matrix that contain repeated values.
Examples:
Input: N = 4, arr[][] = {{1, 2, 3, 4}, {2, 1, 4, 3}, {3, 4, 1, 2}, {4, 3, 2, 1}}
Output: 0 0
Explanation:
None of the rows or columns contain repeated values.Input: N = 4, arr[][]= {{2, 2, 2, 2}, {2, 3, 2, 3}, {2, 2, 2, 3}, {2, 2, 2, 2}}
Output: 4 4
Explanation:
In every column and every row of the square matrix, the values are repeated.
Therefore, the total count is 4 for both rows and columns.
Approach: The idea is to use the NumPy library.
- Make a NumPy array of every row and every column in the square matrix.
- Find the length of the unique elements.
- If the length is equal to N then, there are no repeated values present in that particular row or column.
Below is the implementation of the above approach:
# Python program to count the number of # rows and columns in a square matrix # that contain repeated values   import numpy as np   # Function to count the number of rows # and number of columns that contain # repeated values in a square matrix. def repeated_val(N, matrix):     column = 0    row = 0    for i in range (N):       # For every row, an array is formed.     # The length of the unique elements     # is calculated, which if not equal     # to 'N' then the row has repeated values.         if (len(np.unique(np.array(matrix[i])))!= N):             row += 1       # For every column, an array is formed.     # The length of the unique elements     # is calculated, which if not equal     # to N then the column has repeated values.     for j in range (N):         if (len(np.unique(np.array([m[j] for m in matrix])))!= N):             column += 1                  # Returning the count of     # rows and columns     return row, column     # Driver code if __name__ == '__main__':            N = 3    matrix = [ [ 2, 1, 3 ], [ 1, 3, 2 ], [ 1, 2, 3 ] ]       print(repeated_val(N, matrix))  |
(0, 2)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!
