对一个大小为n x n
的矩阵而言,如果其每一行和每一列都包含从1
到n
的全部整数(含1
和n
),则认为该矩阵是一个有效矩阵。
给你一个大小为n x n
的整数矩阵matrix
,请你判断矩阵是否为一个有效矩阵:如果是,返回true
;否则,返回false
。
示例 1:
输入:matrix = [[1,2,3],[3,1,2],[2,3,1]]
输出:true
解释:在此例中,n = 3 ,每一行和每一列都包含数字 1、2、3 。
因此,返回 true 。
示例 2:
输入:matrix = [[1,1,1],[1,2,3],[1,2,3]]
输出:false
解释:在此例中,n = 3 ,但第一行和第一列不包含数字 2 和 3 。
因此,返回 false 。
提示:
n == matrix.length == matrix[i].length
1 <= n <= 100
1 <= matrix[i][j] <= n
Python:
class Solution:
def checkValid(self, matrix: List[List[int]]) -> bool:
aset = set()
for item in matrix:
for i in item:
aset.add(i)
if len(aset) != len(matrix):
return False
aset.clear()
for i in range(len(matrix)):
for j in range(len(matrix)):
aset.add(matrix[j][i])
if len(aset) != len(matrix):
return False
aset.clear()
return True
Java:
class Solution {
public boolean checkValid(int[][] matrix) {
Set<Integer> map = new HashSet<>();
for(int[] item: matrix)
{
for(int num: item)
{
map.add(num);
}
if(map.size() != matrix.length)
return false;
map.clear();
}
for(int i = 0; i < matrix.length; i++)
{
for(int j = 0; j < matrix.length; j++)
{
map.add(matrix[j][i]);
}
if(map.size() != matrix.length)
return false;
map.clear();
}
return true;
}
}
留言