150 principais entrevistasFácil

Nade em águas crescentes

Guia detalhado e implementação de Python para o problema 'Swim In Rising Water'.

Declaração do problema

Fácil

Você recebe uma grade de matriz inteira n x n onde cada valor grid[i][j] representa a elevação naquele ponto (i, j). A chuva começa a cair. No instante t, a profundidade da água em todos os lugares é t. Você pode nadar de um quadrado para outro quadrado adjacente em quatro direções se e somente se ambas as elevações nos quadrados forem no máximo t.

Você começa no quadrado superior esquerdo (0, 0). Qual é o menor tempo até você chegar ao quadrado inferior direito (n-1, n-1)?

Escreva uma função swimInWater(grid: List[List[int]]) -> int.

Restrições
  • n == len(grid) == len(grid[i])
  • 1 <= n <= 50
  • 0 <= grid[i][j] < n^2
  • Each value grid[i][j] is unique

Exemplos

Example 1
Input
grid = [[0,2],[1,3]]
Output
3
Explanation

At time 3, you are permitted to swim all the way from (0,0) to (1,1). The path is 0 -> 1 -> 3.

Example 2
Input
grid = [[0,1,2,3,4],[24,23,22,21,5],[12,13,14,15,16],[11,17,18,19,20],[10,9,8,7,6]]
Output
16
Explanation

The final path is 0-1-2-3-4-5-16-15-14-13-12-11-10-9-8-7-6. The maximum height along this path is 16.

Need a Hint?
Considere usar estruturas de dados específicas do Advanced Graphs, 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.