📌  相关文章
📜  二进制矩阵中的唯一单元格(1)

📅  最后修改于: 2023-12-03 14:49:02.403000             🧑  作者: Mango

二进制矩阵中的唯一单元格

给定一个包含0和1的二进制矩阵,找出该矩阵中的“唯一”单元格。

“唯一”单元格是指所在行和列中只有一个值为1的单元格。

如果没有这样的单元格,则返回-1。

示例

输入:

[[1,0,0,1,0],
 [0,0,1,0,1],
 [0,0,0,1,0],
 [1,0,1,0,1]]

输出:

[0,2]

说明:在第0行和第2列中都只有一个1。

思路

首先,根据题目描述,我们可以知道唯一单元格所在行和列都只有一个1。

那么我们可以遍历整个矩阵,记录每一行和每一列的1的个数。

接着再遍历整个矩阵,找到所在行和列都只有一个1的单元格即可。

代码
class Solution:
    def getUniqueCell(self, matrix: List[List[int]]) -> List[int]:
        row_count = [0] * len(matrix)
        col_count = [0] * len(matrix[0])
        
        for i in range(len(matrix)):
            for j in range(len(matrix[0])):
                if matrix[i][j] == 1:
                    row_count[i] += 1
                    col_count[j] += 1
        
        for i in range(len(matrix)):
            for j in range(len(matrix[0])):
                if matrix[i][j] == 1 and row_count[i] == 1 and col_count[j] == 1:
                    return [i,j]
        
        return -1