2133. Check if Every Row and Column Contains All Numbers - cocoder39/coco39_LC GitHub Wiki
2133. Check if Every Row and Column Contains All Numbers
Optimal solution:
class Solution:
def checkValid(self, matrix: List[List[int]]) -> bool:
n = len(matrix)
for i in range(n):
row, col = set(), set()
for j in range(n):
if matrix[i][j] in row or matrix[j][i] in col: # check both row[i] and col[i]
return False
row.add(matrix[i][j])
col.add(matrix[j][i])
if len(row) != n or len(col) != n:
return False
return True
suboptimal solution
class Solution:
def checkValid(self, matrix: List[List[int]]) -> bool:
n = len(matrix)
rows = [set() for _ in range(n)]
cols = [set() for _ in range(n)]
for i in range(n):
for j in range(n):
if matrix[i][j] in rows[i] or matrix[i][j] in cols[j]:
return False
rows[i].add(matrix[i][j])
cols[j].add(matrix[i][j])
for i in range(n):
if len(rows[i]) != n or len(cols[i]) != n:
return False
return True