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!