Find All Groups of Farmland LeetCode solution in Python

1
# Runtime: 1416 ms (Top 90.80%) | Memory: 33.1 MB (Top 49.64%)
2
class Solution:
3

4
def findFarmland(self, land: List[List[int]]) -> List[List[int]]:
5
n = len(land)
6
m = len(land[0])
7

8
groups = []
9
visited = set()
10

11
for y in range(n):
12
for x in range(m):
13
if land[y][x] == 0:
14
continue
15

16
if (y, x) in visited:
17
continue
18

19
q = collections.deque()
20
q.append((y, x))
21
visited.add((y, x))
22

23
while q:
24
cy, cx = q.popleft()
25

26
for dy, dx in ((0, 1), (1, 0)):
27
if (cy + dy, cx + dx) in visited:
28
continue
29

30
if 0 <= cy + dy < n and 0 <= cx + dx < m:
31
if land[cy + dy][cx + dx] == 1:
32
q.append((cy + dy, cx + dx))
33
visited.add((cy + dy, cx + dx))
34

35
groups.append([y, x, cy, cx])
36

37
return groups

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0