TGViewer
Javascript Javascript @javascriptv · 16.9K subscribers
Post #863 2.67K
📌 Задача с leetcode. Max Area of Island

Максимальная площадь острова

Сложность: Средняя

Условие задачи: Условие задачи:

Дан двумерный массив размера m x n. "1" отвечает за сушу, "0" - за океан. Необходимо опеределить максмимальную площадь острова из островов, расположенных на карте.

Островом считается территория, образованная из "1", расположенных сверху, справа, снизу и слева относительно друг друга.

Пример:

Ввод:
grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,1,0,1,0,0],[0,1,0,0,1,1,0,0,1,1,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0]]

Вывод: 6

Ввод: grid = [[0,0,0,0,0,0,0,0]]

Вывод: 0

Решение

/**
* @param {number[][]} grid
* @return {number}
*/
var maxAreaOfIsland = function(grid) {
const ROWS = grid.length, COLUMNS = grid[0].length;

const DFS = (row, column) => {
const stack = [[row, column]];
let currRow, currColumn, resultArea = 0;
while (stack.length !== 0){
[currRow, currColumn] = stack.pop();
if (grid[currRow][currColumn] !== 1)
continue;

grid[currRow][currColumn] = 2;
resultArea++;
if (currRow + 1 < ROWS)
stack.push([currRow + 1, currColumn]);
if (currRow - 1 >= 0)
stack.push([currRow - 1, currColumn]);
if (currColumn + 1 < COLUMNS)
stack.push([currRow, currColumn + 1]);
if (currColumn - 1 >= 0)
stack.push([currRow, currColumn - 1]);
}
return resultArea;
};

let maxArea = 0;
for (let r = 0; r < ROWS; r++){
for (let c = 0; c < COLUMNS; c++){
if (grid[r][c] === 1){
maxArea = Math.max(maxArea, DFS(r, c));
}
}
}
return maxArea;
};

Пишите свое решение в комментариях👇

@javascriptv
  • 👍 12
  • 🔥 3
  • ❤ 2
  • 👎 1
More from @javascriptv
  1. Oct 6, 2026Arc Time Slider Это кастомный слайдер, разработанный с использованием веб-технологий HTML,…
  2. Oct 6, 2026🤺 Почему ты получаешь отказ после «норм собеса»? Дело не в знаниях — ты просто не знаешь,…
  3. Oct 5, 2026Ознакомьтесь с этими 5 советами по адаптивному веб-дизайну 👨‍💻
  4. Oct 3, 2026Импорт локальных изображений vs использование изображений из папки / public в Next.js
  5. Oct 2, 2026Совет по веб-доступности 💡 Лучший способ сделать ваши ссылки, состоящие только из иконок,…
  6. Sep 30, 2026🌐 Человек, который создал первый веб-браузер, сервер и заложил основу современного интерн…
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 →