Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution:
- def recr_scan(self, Ar_a, Ar_b, l, k, count_1):
- if k < len(Ar_a[l]) - 1 :
- if Ar_a[l][k+1] == 1 and Ar_b[l][k+1] == 0:
- count_1 +=1
- Ar_b[l][k+1]=1
- Ar_b, count_1 = self.recr_scan(Ar_a, Ar_b, l, k+1, count_1)
- if l < len(Ar_a) - 1:
- if Ar_a[l+1][k] == 1 and Ar_b[l+1][k] == 0:
- count_1 +=1
- Ar_b[l+1][k]=1
- Ar_b, count_1 = self.recr_scan(Ar_a, Ar_b, l+1, k, count_1)
- if k > 0:
- if Ar_a[l][k-1] == 1 and Ar_b[l][k-1] == 0:
- count_1 +=1
- Ar_b[l][k-1]=1
- Ar_b, count_1 = self.recr_scan(Ar_a, Ar_b, l, k-1, count_1)
- if l > 0:
- if Ar_a[l-1][k] == 1 and Ar_b[l-1][k] == 0:
- count_1 +=1
- Ar_b[l-1][k]=1
- Ar_b, count_1 = self.recr_scan(Ar_a, Ar_b, l-1, k, count_1)
- return Ar_b, count_1
- def maxAreaOfIsland(self, a: 'List[List[int]]') -> 'int':
- b=[]
- max_1=0
- for i in range(len(a)):
- b.append([])
- for j in range(len(a[0])):
- b[i].append(0)
- for i in range(len(a)):
- for j in range(len(a[0])):
- count = 0
- if a[i][j]==1:
- count +=1
- b[i][j]=1
- b, count = self.recr_scan(a, b, i , j, count)
- if count > max_1:
- max_1 = count
- return max_1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement