You are given an m x n binary matrix grid. An island is a group of 1's (representing land) connected 4-directionally (horizontal or vertical). You may assume all four edges of the grid are surrounded by water.

The area of an island is the number of cells with a value 1 in the island.

Return the maximum area of an island in grid. If there is no island, return 0.

Input & Output

Example 1 — Basic Grid
$ Input: grid = [[1,1,0,0],[1,1,0,0],[0,0,1,0]]
Output: 4
💡 Note: The largest island is the top-left 2x2 square of 1's, which has area 4. The bottom-right single 1 has area 1.
Example 2 — All Water
$ Input: grid = [[0,0,0,0,0,0,0,0]]
Output: 0
💡 Note: There are no islands (no 1's), so the maximum area is 0.
Example 3 — Single Large Island
$ Input: grid = [[1,1,1],[1,0,1],[1,1,1]]
Output: 8
💡 Note: All 1's are connected around the center 0, forming one island with area 8.

Constraints

  • m == grid.length
  • n == grid[i].length
  • 1 ≤ m, n ≤ 50
  • grid[i][j] is either 0 or 1

Visualization

Tap to expand
Max Area of Island INPUT Binary Matrix Grid (3x4) 1 1 0 0 1 1 0 0 0 0 1 0 = Land (1) = Water (0) Input Array: [[1,1,0,0], [1,1,0,0], [0,0,1,0]] m=3 rows, n=4 cols ALGORITHM STEPS Depth-First Search 1 Iterate Grid Scan each cell (i, j) 2 Find Land Cell If grid[i][j]==1, start DFS 3 DFS Exploration Visit 4 neighbors, mark visited, count area 4 Track Maximum Update maxArea after each island found DFS from (0,0): 1 2 3 4 Island 1 Area = 4 FINAL RESULT 1 1 0 0 1 1 0 0 0 0 1 0 Island 1 (yellow) Area = 4 Island 2 Area = 1 OUTPUT 4 Maximum Area = 4 OK - Found 2 islands Key Insight: DFS explores all connected land cells (4-directionally) from each unvisited land cell. By marking cells as visited (setting to 0), we avoid counting the same island twice. Time Complexity: O(m*n) | Space Complexity: O(m*n) for recursion stack in worst case. TutorialsPoint - Max Area of Island | Depth-First Search Approach
Asked in
Facebook 65 Amazon 45 Google 35 Microsoft 28
125.0K Views
High Frequency
~15 min Avg. Time
5.8K Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen