LC 2850
unknown
python
a year ago
963 B
6
Indexable
class Solution: def minimumMoves(self, grid: List[List[int]]) -> int: extrasPos, zeroesPos = [], [] M, N = len(grid), len(grid[0]) for i in range(M): for j in range(N): if grid[i][j] > 1: extrasPos.append([i, j]) if grid[i][j] == 0: zeroesPos.append([i, j]) def dfs(i): if i == len(zeroesPos): return 0 ans = float('inf') zx, zy = zeroesPos[i] for ex, ey in extrasPos: if grid[ex][ey] == 1: continue grid[zx][zy] += 1 grid[ex][ey] -= 1 dist = abs(zx - ex) + abs(zy - ey) ans = min(ans, dist + dfs(i + 1)) grid[ex][ey] += 1 grid[zx][zy] -= 1 return ans return dfs(0)
Editor is loading...
Leave a Comment