Bomb Enemy
Input:
[["0","E","0","0"],["E","0","W","E"],["0","E","0","0"]]
Output:
3
Explanation:
For the given grid,
0 E 0 0
E 0 W E
0 E 0 0
Placing a bomb at (1,1) kills 3 enemies.Last updated
Input:
[["0","E","0","0"],["E","0","W","E"],["0","E","0","0"]]
Output:
3
Explanation:
For the given grid,
0 E 0 0
E 0 W E
0 E 0 0
Placing a bomb at (1,1) kills 3 enemies.Last updated
class Solution:
def maxKilledEnemies(self, A: List[List[str]]) -> int:
if not A or not A[0]:
return 0
n, m = len(A), len(A[0])
rowhit = 0
colhit = [0]*m #遍历时候row顺序,但是col需要记录整个数组
res = 0
for i in range(n):
for j in range(m):
if not j or A[i][j-1] == 'W':
rowhit = 0
for k in range(j, m):#等于while就算当前这个row所有E,继续右边j-m
if A[i][k] == 'W':#小loop里计算rowhit colhit,再遇到W直接终止。
break
if A[i][k] == 'E':
rowhit += 1
if not i or A[i-1][j] == 'W':#等于while就算当前这个col所有E
colhit[j] = 0
for k in range(i, n): #继续下面i-n
if A[k][j] == 'W':
break
if A[k][j] == 'E':
colhit[j] += 1
if A[i][j] == '0':
res = max(res,rowhit + colhit[j])
return res