Menu
CoddyTech

Swim in Rising Water

On vous donne une grille n × n de hauteurs contenant chaque nombre de 0 à n²-1 exactement une fois, sous forme d’une liste de lignes. La pluie commence à l’instant 0 et, à l’instant t, l’eau atteint partout la hauteur t, si bien que chaque cellule de hauteur inférieure ou égale à t est sous l’eau. Vous commencez dans la cellule en haut à gauche. Vous pouvez nager d’une cellule à une cellule qui partage un côté avec elle lorsque les deux sont sous l’eau, et la nage ne prend pas de temps. Renvoyez le premier instant auquel vous pouvez vous trouver dans la cellule en bas à droite.

Fonction

swimInWater(grid: integer-2d-array) → integer
gridinteger-2d-array
les hauteurs, sous forme d’une liste de n lignes de n nombres
Renvoieinteger
le moment le plus tôt où tu peux atteindre la cellule en bas à droite

Contraintes

  • n == grid.length == grid[i].length
  • 1 ≤ n ≤ 100
  • 0 ≤ grid[i][j] ≤ n²-1
  • Chaque valeur de 0 à n²-1 apparaît exactement une fois.

Exemples

Entrée
grid = [[0, 2], [3, 1]]
Sortie
2
Explication
En passant par la cellule en haut à droite, l’itinéraire est 0, 2, 1, et sa cellule la plus haute est 2. En passant par la cellule en bas à gauche, il est 0, 3, 1, et sa cellule la plus haute est 3. À l’instant 2, le premier itinéraire est sous l’eau, donc la réponse est 2.

lock icon+13 tests cachés à la soumission

challenge icon

Pour aller plus loin

Si les hauteurs pouvaient se répéter et atteindre 10^9, laquelle de tes approches fonctionnerait toujours sans modification, et sur quoi effectuerais-tu une recherche binaire ?

Réinitialiser le code
def swimInWater(grid):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

grid = [[0, 2], [3, 1]]

Attendu

2