使用Python查找二进制矩阵中特殊位置的数量

使用Python查找二进制矩阵中特殊位置的数量

假设我们有一个大小为m x n的二进制矩阵,我们必须找到矩阵中特殊位置的数量。当mat[i,j]=1且行i和列j中的所有其他元素都为0时,位置(i,j)是特殊位置。

因此,如果输入如下:

1 0 0 0 0
0 0 1 0 0
0 0 0 1 1
0 1 0 0 0

那么输出将是3,这里的特殊位置是(0,0),(1,2)和(3,1)。

要解决这个问题,我们将遵循以下步骤 –

  • special := 0

  • 对于矩阵行的数量的范围从0到i,做以下操作 –

    • 如果矩阵[i]中的1的数量为1,则 –
      • numOfOne := 0

      • indexOfOne := 1在矩阵[i]中的位置

      • 对于矩阵的列大小的范围从0到j,做以下操作 –

      • 如果matrix[j, indexOfOne]与1相同,则 –

        • numOfOne :=numOfOne + 1
      • 如果numOfOne > 1,则 –
        • 从循环中退出
      • 如果numOfOne与1相同,则 –

      • special := special + 1

  • 返回special

更多Python相关文章,请阅读:Python 教程

示例(Python)

让我们看下面的实现以更好地理解 –

def solve(matrix):
    special = 0
    for i in range(len(matrix)):
        if matrix[i].count(1) == 1:
            numOfOne = 0
            indexOfOne = matrix[i].index(1)
            for j in range(len(matrix)):
                if matrix[j][indexOfOne] == 1:
                    numOfOne += 1
                if numOfOne > 1:
                    break
            if numOfOne == 1:
                special += 1
    return special

matrix = [[1,0,0,0,0],
          [0,0,1,0,0],
          [0,0,0,1,1],
          [0,1,0,0,0]]
print(solve(matrix))

输入

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

输出

3

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程