leetcode

Leetcode submissions
git clone git://git.laack.co/leetcode.git
Log | Files | Refs | README

max-area-of-islandV1.py (866B)


      1 class Solution:
      2     def maxAreaOfIsland(self, grid: List[List[int]]) -> int:
      3 
      4         max_size = 0
      5 
      6         for y in range(len(grid)):
      7             for x in range(len(grid[y])):
      8                 if grid[y][x] == 1:
      9                     current = count_and_mark(x, y, grid)
     10 
     11                     if current > max_size:
     12                         max_size = current
     13 
     14         return max_size
     15 
     16 
     17 def count_and_mark(x_pos, y_pos, grid) -> int:
     18     if grid[y_pos][x_pos] != 1:
     19         return 0
     20 
     21     count = 1
     22     grid[y_pos][x_pos] = -1
     23 
     24     if x_pos > 0:
     25         count += count_and_mark(x_pos - 1, y_pos, grid)
     26     if y_pos > 0:
     27         count += count_and_mark(x_pos, y_pos - 1, grid)
     28 
     29     if y_pos < len(grid) - 1:
     30         count += count_and_mark(x_pos, y_pos + 1, grid)
     31     if x_pos < len(grid[0]) - 1:
     32         count += count_and_mark(x_pos + 1, y_pos, grid)
     33 
     34     return count