class Solution:
def maxMoves(self, grid: List[List[int]]) -> int:
n, m = len(grid), len(grid[0])
ans = 0
starts = [(i, 0) for i in range(n)]
q = deque(starts)
visited = set(starts)
while q:
i, j = q.popleft()
for dx, dy in (i - 1, j + 1), (i, j + 1), (i + 1, j + 1):
if 0 <= dx < n and 0 <= dy < m and grid[dx][dy] > grid[i][j] and (dx, dy) not in visited:
q.append((dx, dy))
visited.add((dx, dy))
ans = dy
return ans
11-04
725
04-19
526