老板在Python中战斗

假设我们有一个名为fighters的二进制列表和另一个名为bosss的二进制列表。在战斗机列表中,1代表战斗机。同样,在老板列表1中代表老板。如果战士比老板多,那么战士就可以击败老板。我们必须返回删除了失败的老板行的新老板矩阵。

因此,如果输入像战斗机= [0,1,1]

01个1
000
001
01个1
1个1个1

那么输出将是

01个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]]