TGViewer
PHP | LeetCode PHP | LeetCode @easy_php_task · 1.33K subscribers
Post #1271 111
Задача: 361. Bomb Enemy
Сложность: medium

Дана матрица размером m x n, где каждая ячейка является либо стеной 'W', либо врагом 'E', либо пустой '0'. Верните максимальное количество врагов, которых можно уничтожить, используя одну бомбу. Вы можете разместить бомбу только в пустой ячейке.
Бомба уничтожает всех врагов в той же строке и столбце от точки установки до тех пор, пока не встретит стену, так как она слишком сильна, чтобы быть разрушенной.

Пример:
Input: grid = [["0","E","0","0"],["E","0","W","E"],["0","E","0","0"]]
Output: 3


👨‍💻 Алгоритм:

1⃣Перебрать каждую ячейку в сетке и для каждой пустой ячейки вычислить, сколько врагов можно убить, установив бомбу.

2⃣Реализовать функцию killEnemies(row, col), которая считает количество врагов, убитых бомбой, установленных в пустой ячейке (row, col), проверяя все четыре направления (влево, вправо, вверх, вниз) до стены или границы сетки.

3⃣Вернуть максимальное количество врагов, убитых среди всех пустых ячеек.

😎 Решение:
class Solution {
function maxKilledEnemies($grid) {
if (count($grid) == 0) return 0;

$rows = count($grid);
$cols = count($grid[0]);
$maxCount = 0;

for ($row = 0; $row < $rows; ++$row) {
for ($col = 0; $col < $cols; ++$col) {
if ($grid[$row][$col] == '0') {
$hits = $this->killEnemies($row, $col, $grid);
$maxCount = max($maxCount, $hits);
}
}
}

return $maxCount;
}

private function killEnemies($row, $col, $grid) {
$enemyCount = 0;
$directions = [[-1, 0], [1, 0], [0, -1], [0, 1]];

foreach ($directions as $direction) {
$r = $row + $direction[0];
$c = $col + $direction[1];

while ($r >= 0 && $r < count($grid) && $c >= 0 && $c < count($grid[0])) {
if ($grid[$r][$c] == 'W') break;
if ($grid[$r][$c] == 'E') $enemyCount++;
$r += $direction[0];
$c += $direction[1];
}
}

return $enemyCount;
}
}


Ставь 👍 и забирай 📚 Базу знаний
More from @easy_php_task
  1. Oct 11, 2026Задача: 913. Cat and Mouse4 Сложность: hard В игру на неориентированном графе играют два и…
  2. Oct 9, 2026Задача: 71. Simplify Path Сложность: medium Дан абсолютный путь для файловой системы в сти…
  3. Oct 7, 2026🔥 Скрытые вакансии с удаленной работой для PHP разработчика, которые нигде больше не публ…
  4. Oct 6, 2026Задача: 166. Fraction to Recurring Decimal Сложность: medium Даны два целых числа, предста…
  5. Oct 5, 2026Задача: 1024. Video Stitching Сложность: medium Вам дана серия видеоклипов со спортивного…
  6. Oct 5, 2026Задача: 924. Minimize Malware Spread Сложность: hard Вам дана сеть из n узлов, представлен…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →