对一个大小为n x n的矩阵而言,如果其每一行和每一列都包含从1n全部整数(含1n),则认为该矩阵是一个有效矩阵。

给你一个大小为n x n的整数矩阵matrix,请你判断矩阵是否为一个有效矩阵:如果是,返回true;否则,返回false

示例 1:
file

输入:matrix = [[1,2,3],[3,1,2],[2,3,1]]
输出:true
解释:在此例中,n = 3 ,每一行和每一列都包含数字 1、2、3 。
因此,返回 true 。

示例 2:

file

输入: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;
    }
}
最后修改日期: 2022年1月28日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。