Le migliori 150 intervisteFacile

Nuota nell'acqua crescente

Guida dettagliata e implementazione Python per il problema 'Swim In Rising Water'.

Dichiarazione del problema

Facile

Ti viene data una griglia di matrice intera n x n in cui ciascun valore griglia[i][j] rappresenta l'elevazione in quel punto (i, j). La pioggia inizia a cadere. Al tempo t, la profondità dell'acqua ovunque è t. Puoi nuotare da un quadrato a un altro quadrato adiacente in 4 direzioni se e solo se entrambe le elevazioni nei quadrati sono al massimo t.

Inizi dal quadrato in alto a sinistra (0, 0). Qual è il tempo minimo necessario per raggiungere il quadrato in basso a destra (n-1, n-1)?

Scrivi una funzione swimInWater(grid: List[List[int]]) -> int.

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

Esempi

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?
Prendi in considerazione l'utilizzo di strutture dati specifiche di Advanced Graphs come set o heap.
Edge Cases to Watch
  • Strutture di input vuote
  • Ingressi a elemento singolo
  • Grandi limiti numerici

Pronto a risolvere?

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

Apri nell'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

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.