150 principais entrevistasFácil

Paredes e Portões

Guia detalhado e implementação de Python para o problema 'Walls And Gates'.

Declaração do problema

Fácil

Você recebe uma grade m x n inicializada com estes três valores possíveis:

- -1: Uma parede ou obstáculo.

- 0: Um portão.

- INF (representado por 2147483647): Uma sala vazia.

Preencha cada sala vazia com a distância até o portão mais próximo. Se for impossível chegar a um portão, ele deverá ser preenchido com INF.

Escreva uma função wallsAndGates(rooms: List[List[int]]) -> List[List[int]] que retorne a grade de salas modificada.

Restrições
  • m == len(rooms)
  • n == len(rooms[i])
  • 1 <= m, n <= 250
  • rooms[i][j] is -1, 0, or 2147483647

Exemplos

Example 1
Input
rooms = [[2147483647,-1,0,2147483647],[2147483647,2147483647,2147483647,-1],[2147483647,-1,2147483647,-1],[0,-1,2147483647,2147483647]]
Output
[[3,-1,0,1],[2,2,1,-1],[1,-1,2,-1],[0,-1,3,4]]
Explanation

The empty rooms are filled with the shortest distance to their nearest gate.

Need a Hint?
Considere usar estruturas de dados específicas de gráficos, como conjuntos ou heaps.
Edge Cases to Watch
  • Estruturas de entrada vazias
  • Entradas de elemento único
  • Grandes limites numéricos

Pronto para resolver?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Abrir no Editor
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.