Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. class Solution:
  2. def recr_scan(self, Ar_a, Ar_b, l, k, count_1):
  3. if k < len(Ar_a[l]) - 1 :
  4. if Ar_a[l][k+1] == 1 and Ar_b[l][k+1] == 0:
  5. count_1 +=1
  6. Ar_b[l][k+1]=1
  7. Ar_b, count_1 = self.recr_scan(Ar_a, Ar_b, l, k+1, count_1)
  8.  
  9. if l < len(Ar_a) - 1:
  10. if Ar_a[l+1][k] == 1 and Ar_b[l+1][k] == 0:
  11. count_1 +=1
  12. Ar_b[l+1][k]=1
  13. Ar_b, count_1 = self.recr_scan(Ar_a, Ar_b, l+1, k, count_1)
  14.  
  15.  
  16. if k > 0:
  17. if Ar_a[l][k-1] == 1 and Ar_b[l][k-1] == 0:
  18. count_1 +=1
  19. Ar_b[l][k-1]=1
  20. Ar_b, count_1 = self.recr_scan(Ar_a, Ar_b, l, k-1, count_1)
  21.  
  22. if l > 0:
  23. if Ar_a[l-1][k] == 1 and Ar_b[l-1][k] == 0:
  24. count_1 +=1
  25. Ar_b[l-1][k]=1
  26. Ar_b, count_1 = self.recr_scan(Ar_a, Ar_b, l-1, k, count_1)
  27.  
  28. return Ar_b, count_1
  29.  
  30.  
  31. def maxAreaOfIsland(self, a: 'List[List[int]]') -> 'int':
  32. b=[]
  33. max_1=0
  34.  
  35.  
  36. for i in range(len(a)):
  37. b.append([])
  38. for j in range(len(a[0])):
  39. b[i].append(0)
  40.  
  41. for i in range(len(a)):
  42. for j in range(len(a[0])):
  43. count = 0
  44. if a[i][j]==1:
  45. count +=1
  46. b[i][j]=1
  47. b, count = self.recr_scan(a, b, i , j, count)
  48.  
  49. if count > max_1:
  50. max_1 = count
  51.  
  52.  
  53. return max_1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement