#+ANKI_DECK: study_deck_02 * TODO 0695. Max Area of Island :medium: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*0695. Max Area of Island][0695. Max Area of Island]] :END: 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~. *Example 1:* #+begin_src Input: 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]] Output: 6 Explanation: The answer is not 11, because the island must be connected 4-directionally. #+end_src *Example 2:* #+begin_src Input: grid = [[0,0,0,0,0,0,0,0]] Output: 0 #+end_src *Constraints:* - ~m == grid.length~ - ~n == grid[i].length~ - ~1 <= m, n <= 50~ - ~grid[i][j]~ is either ~0~ or ~1~. ** TODO Approach Write your approach here. ** TODO Python #+begin_src python class Solution: def maxAreaOfIsland(self, grid: List[List[int]]) -> int: #+end_src ** TODO C++ #+begin_src cpp class Solution { public: int maxAreaOfIsland(vector>& grid) { } }; #+end_src