题目要求在 n×n 的战场网格中,找到那些只需部署一个单位就能消灭一个或多个敌群的“关键逃生口”,并计算在每个关键逃生口部署单位后能消灭的敌军总数。
我们可以将问题拆解为以下几个步骤:
识别敌群(连通块)
战场中的敌方单位 'x' 通过上下左右四个方向连成一片,形成“敌群”。使用广度优先搜索(BFS)或深度优先搜索遍历棋盘,为每个 'x' 连通块计算大小(即该敌群的敌方单位数量)。
统计敌群的逃生口(气)
你正在指挥一场战术清剿。战场是一个 n×n 的网格,每个格子有三种状态:
'.' 表示空地,可以部署我方单位;'x' 表示敌方单位;'o' 表示我方单位。敌方单位可以通过上下左右四个方向连成一片,称为“敌群”。一个敌群的“逃生口”定义为与它相邻(上下左右)的所有空地。 如果我方在某个空地部署单位后,某个敌群不再有任何逃生口(即所有相邻格子全为我方单位、敌方单位或战场边界),则该敌群会被立即消灭,消灭的敌军数量等于该敌群的单位数。
实际上,如果一个敌群当前恰有 1 个逃生口,那么我方在该逃生口部署单位即可消灭整个敌群。若有多个敌群共享同一个逃生口,部署后它们会同时被消灭,总消灭数会累加。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册