Python程式:計算炸彈爆炸後安全區域的數量
假設我們有一個二維二進位制矩陣,其中1表示炸彈,0表示空單元格。當炸彈爆炸時,同一行和同一列的所有空間都會受損。我們必須找到可以站立而不會受損的空間數量。
因此,如果輸入如下所示:
| 1 | 1 | 0 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
則輸出為2,因為右下角單元格和中間右單元格是安全的。
為了解決這個問題,我們將遵循以下步驟:
r := 一個大小與矩陣行數相同的列表,並填充為false
c := 一個大小與矩陣列數相同的列表,並填充為false
對於範圍從0到矩陣行數-1的i:
對於範圍從0到矩陣列數-1的j:
如果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
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP