2684. Nombre maximum de mouvements dans une grille
Difficulté :Moyen
Sujets :Array, Programmation dynamique, Matrice
Vous recevez une grille matricielle indexée 0 m x n composée d'entiers positifs.
Vous pouvez commencer à n'importe quelle cellule de la première colonne de la matrice et parcourir la grille de la manière suivante :
Renvoyer le nombre maximum de mouvements que vous pouvez effectuer.
Exemple 1 :
Exemple 2 :
Contraintes :
Indice :
Solution :
Nous pouvons utiliser la Programmation dynamique (DP) pour suivre le nombre maximum de mouvements de chaque cellule, en commençant par n'importe quelle cellule de la première colonne. Voici l’approche étape par étape :
Définir un tableau DP : Laissez dp[row][col] représenter le nombre maximum de mouvements possibles à partir de la grille[row][col]. Initialisez-le avec 0 pour toutes les cellules.
Traverser la grille :
Calculer les mouvements maximum :
Cas Edge :
Implémentons cette solution en PHP : 2684. Nombre maximum de mouvements dans une grille
Explication:
- Initialisation dp : Nous créons un tableau 2D dp pour stocker le maximum de mouvements de chaque cellule.
- Boucle à travers les colonnes : nous parcourons de l'avant-dernière colonne à la première, en mettant à jour dp[row][col] en fonction des déplacements possibles vers les cellules voisines de la colonne suivante.
- Calcul des mouvements maximaux : Enfin, la valeur maximale dans la première colonne de dp donne le résultat.
Analyse de complexité :
Cette solution est efficace compte tenu des contraintes et fonctionnera dans les limites prévues.
Liens de contact
Si vous avez trouvé cette série utile, pensez à donner une étoile au référentiel sur GitHub ou à partager la publication sur vos réseaux sociaux préférés ?. Votre soutien signifierait beaucoup pour moi !
Si vous souhaitez du contenu plus utile comme celui-ci, n'hésitez pas à me suivre :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!