Cho danh sách nhị phân fighters (1 = chiến binh) và ma trận bosses (các hàng là boss, 1 = boss). Chiến binh thắng boss nếu số lượng 1 trong fighters lớn hơn số 1 trong hàng boss. Trả về ma trận boss sau khi loại hàng bị đánh bại.
Ví dụ: fighters = [0,1,1], bosses = [[0,0,0],[0,0,1],[0,1,1],[1,1,1]] → kết quả [[0,1,1],[1,1,1]].
Các bước giải quyết
fighter_cnt = sum(fighters)result = []- Với mỗi
rowtrongbosses: nếufighter_cnt <= sum(row)thì thêm vàoresult - Trả về
result
Ví dụ mã Python
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))
Đầu vào
[0, 1, 1], [[0, 0, 0], [0, 0, 1], [0, 1, 1], [1, 1, 1]]
Đầu ra
[[0, 1, 1], [1, 1, 1]]