Dada una array cuadrada N x N arr[][] que contiene solo números enteros entre 1 y N, la tarea es calcular el número de filas y el número de columnas en la array que contienen valores repetidos.
Ejemplos:
Entrada: N = 4, arr[][] = {{1, 2, 3, 4}, {2, 1, 4, 3}, {3, 4, 1, 2}, {4, 3, 2, 1}}
Salida: 0 0
Explicación:
Ninguna de las filas o columnas contiene valores repetidos.Entrada: N = 4, array[][]= {{2, 2, 2, 2}, {2, 3, 2, 3}, {2, 2, 2, 3}, {2, 2, 2, 2}}
Salida: 4 4
Explicación:
En cada columna y cada fila de la array cuadrada, los valores se repiten.
Por lo tanto, el recuento total es 4 tanto para las filas como para las columnas.
Enfoque: La idea es utilizar la biblioteca NumPy .
- Haga una array NumPy de cada fila y cada columna en la array cuadrada.
- Encuentra la longitud de los elementos únicos.
- Si la longitud es igual a N , entonces no hay valores repetidos presentes en esa fila o columna en particular.
A continuación se muestra la implementación del enfoque anterior:
# 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)