在 Python 中寻找炸弹爆炸时安全的位置的程序?

在 Python 中寻找炸弹爆炸时安全的位置的程序?

假设我们有一个二维二进制矩阵,其中 1 表示炸弹,0 表示空单元格。当一颗炸弹爆炸时,所有同一行和同一列上的空格都会受到损坏。我们必须找到我们可以站在的不受损坏的空间的数量。

所以,如果输入是:

1 1 0
0 0 0
0 0 0

那么输出将为 2,因为有两个空间-右下角的单元格和中间的右侧单元格是安全的。

为了解决这个问题,我们将按照以下步骤进行:

  • r:一个与矩阵的行数相同的布尔列表,填充为 false

  • c:一个与矩阵的列数相同的布尔列表,填充为 false

  • 对于 i 在范围 0 到矩阵行数-1,执行以下操作:

    • 对于 j 在范围 0 到矩阵列数-1,执行以下操作:
      • 如果矩阵[i,j]与 1 相同,则

      • r[i] = True,c[j] = True

  • ct = 0

  • 对于 i 在范围 0 到矩阵行数-1,执行以下操作:

    • 对于 j 在范围 0 到矩阵列数-1,执行以下操作:
      • 如果 r[i] 为 false,并且 c[j] 为 false,则

      • ct = ct+1

  • 返回 ct

让我们看以下实现以更好地理解:

示例

class Solution:
   def solve(self, matrix):
      r = [False for i in range(len(matrix))]
      c = [False for i in range(len(matrix[0]))]

      for i in range(len(matrix)):
         for j in range(len(matrix[0])):
            if matrix[i][j] == 1:
               r[i] = True
               c[j] = True

      ct = 0
      for i in range(len(matrix)):
         for j in range(len(matrix[0])):
            if r[i] == False and c[j] == False:
               ct += 1
      return ct

ob = Solution()
matrix = [
   [1, 1, 0],
   [0, 0, 0],
   [0, 0, 0]
]
print(ob.solve(matrix))

输入

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

输出

2

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程