Find All Groups of Farmland LeetCode solution in Python
1# Runtime: 1416 ms (Top 90.80%) | Memory: 33.1 MB (Top 49.64%)2class Solution:34def findFarmland(self, land: List[List[int]]) -> List[List[int]]:5n = len(land)6m = len(land[0])78groups = []9visited = set()1011for y in range(n):12for x in range(m):13if land[y][x] == 0:14continue1516if (y, x) in visited:17continue1819q = collections.deque()20q.append((y, x))21visited.add((y, x))2223while q:24cy, cx = q.popleft()2526for dy, dx in ((0, 1), (1, 0)):27if (cy + dy, cx + dx) in visited:28continue2930if 0 <= cy + dy < n and 0 <= cx + dx < m:31if land[cy + dy][cx + dx] == 1:32q.append((cy + dy, cx + dx))33visited.add((cy + dy, cx + dx))3435groups.append([y, x, cy, cx])3637return groups