Top 150 des entrevuesFacile

Nager dans les eaux montantes

Guide détaillé et implémentation de Python pour le problème « Swim In Rising Water ».

Énoncé du problème

Facile

Vous recevez une grille matricielle entière n x n où chaque grille de valeurs [i] [j] représente l'élévation à ce point (i, j). La pluie commence à tomber. Au temps t, la profondeur de l’eau partout est t. Vous pouvez nager d'un carré à un autre carré adjacent dans 4 directions si et seulement si les deux élévations des carrés sont au plus t.

Vous commencez par le carré supérieur gauche (0, 0). Quel est le temps minimum nécessaire pour atteindre le carré en bas à droite (n-1, n-1) ?

Écrivez une fonction swimInWater(grid: List[List[int]]) -> int.

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

Exemples

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?
Pensez à utiliser des structures de données spécifiques à Advanced Graphs, telles que des ensembles ou des tas.
Edge Cases to Watch
  • Structures d'entrée vides
  • Entrées à élément unique
  • Grandes limites numériques

Prêt à résoudre ?

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

Ouvrir dans l'éditeur
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

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.