假设我们有一个名为fighters的二进制列表和另一个名为bosss的二进制列表。在战斗机列表中,1代表战斗机。同样,在老板列表1中代表老板。如果战士比老板多,那么战士就可以击败老板。我们必须返回删除了失败的老板行的新老板矩阵。
因此,如果输入像战斗机= [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:=战斗机所有元素的总和
结果:=一个新列表
对于老板的每一行,
在结果末尾插入行
如果fighter_cnt <=行中每个元素的总和,则
返回结果
让我们看下面的实现以更好地理解-
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]]