LC: 361. Bomb Enemy
https://leetcode.com/problems/bomb-enemy/
361. Bomb EnemyMedium
Given an m x n matrix grid where each cell is either a wall 'W', an enemy 'E' or empty '0', return the maximum enemies you can kill using one bomb. You can only place the bomb in an empty cell.
The bomb kills all the enemies in the same row and column from the planted point until it hits the wall since it is too strong to be destroyed.
Example 1:
Input: grid = [["0","E","0","0"],["E","0","W","E"],["0","E","0","0"]]
Output: 3Example 2:
Input: grid = [["W","W","W"],["0","0","0"],["E","E","E"]]
Output: 1Constraints:
m == grid.lengthn == grid[i].length1 <= m, n <= 500grid[i][j]is either'W','E', or'0'.
The Essence: Betrachten Sie zum Beispiel dieses Gitter, bei dem die braunen Felder den Wänden und die Grünen den Feinden entsprechen:
Für jede Zelle braucht man nicht, die Anzahl der gebombten Feinde zu zählen. Wenn in vorher verarbeiteten Zellen in derselben Zeile die horizontale Anzahl berechnet wird und zwischen dieser Zelle und der aktuellen Zelle keine Wände vorliegt, dann kann man diese horizıntale Anzahl speichern und wieder verwenden. Für die y-Richtung ist es analog, indem man die Anzahlen in derselben Spalte verwenden kann.
Details:
Am Anfang einer Spalte bzw. Zeile oder nach einer Wand soll der Algorithmus die vertikale bzw. Horizontale Anzahl neu berechnen. Außerdem lässt sich dieses Verfahren nur mittels Durchschleifens durch die Eingabe-Matrix implementieren. Weitere Informationen und Code findet der Problemlöser hier:
Solution(s) and Further Explanation:
Default Code:
Last updated