用 Python 编写程序,找出炸弹爆炸时安全的地方数量?
pythonserver side programmingprogramming更新于 2026/2/16 4:28:17
假设我们有一个 2d 二进制矩阵,其中 1 表示炸弹,0 表示空单元格。当炸弹爆炸时,同一行和同一列上的所有空间都会被损坏。我们必须找到可以站立的空间数量,以免受到伤害。
因此,如果输入如下
| 1 | 1 | 0 |
| 0 | 0 | |
| 0 | 0 | |
| 0 | 0 |
则输出将为 2,因为有两个空间,右下角单元格和中间右侧单元格是安全的。
要解决这个问题,我们将遵循以下步骤:
r := 大小与矩阵行数相同的列表,并用 false 填充
c := 大小与矩阵列数相同的列表,用 false 填充
对于 i 在 0 到矩阵行数 - 1 的范围内,执行
对于 j 在 0 到矩阵列数 - 1 的范围内,执行
如果 matrix[i, j] 与 1 相同,则
r[i] := True, c[j] := True
ct := 0
对于范围从 0 到矩阵行数 - 1 的 i,执行
对于范围从 0 到矩阵列数 - 1 的 j,执行
如果 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 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

