Python中的Boss戰鬥
假設我們有一個名為fighters的二進位制列表和另一個名為bosses的二進位制列表列表。在fighters列表中,1代表一個戰士。類似地,在bosses列表中,1代表一個Boss。如果戰士的數量多於Boss的數量,則戰士可以擊敗Boss的行。我們必須返回一個刪除了失敗Boss行的新的bosses矩陣。
因此,如果輸入類似於fighters = [0,1,1]
0 | 1 | 1 |
0 | 0 | 0 |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 1 |
那麼輸出將是
0 | 1 | 1 |
1 | 1 | 1 |
為了解決這個問題,我們將遵循以下步驟:
fighter_cnt := fighters所有元素的總和
result := 一個新的列表
對於bosses中的每一行,執行:
如果fighter_cnt <= 行中每個元素的總和,則
將行插入result的末尾
返回result
讓我們看看下面的實現以更好地理解:
示例
class Solution: def solve(self, fighters, bosses): fighter_cnt = sum(fighters) result = [] for row in bosses: if fighter_cnt <= sum(row): result.append(row) return result ob = Solution() fighters = [0, 1, 1] bosses = [[0, 0, 0], [0, 0, 1], [0, 1, 1], [1, 1, 1]] print(ob.solve(fighters, bosses))
輸入
[0, 1, 1], [[0, 0, 0], [0, 0, 1], [0, 1, 1], [1, 1, 1]]
輸出
[[0, 1, 1], [1, 1, 1]]
廣告