Prépa Code Connexion Inscription

Exercices de programmation pour classes préparatoires

← Retour aux exercices

Chemin de cout minimal dans une matrice

python ★★★☆☆

On considere une matrice M de taille n x m contenant des entiers positifs. On part de la case en haut a gauche (0, 0) et on veut atteindre la case en bas a droite (n-1, m-1). A chaque etape, on ne peut se deplacer que vers la droite ou vers le bas.

Ecrire une fonction chemin_min(M) qui renvoie le cout minimal d'un chemin allant de (0, 0) a (n-1, m-1), ou le cout d'un chemin est la somme des valeurs des cases traversees.

On definit C(i, j) le cout minimal pour atteindre la case (i, j) : - C(0, 0) = M[0][0] - C(i, 0) = C(i-1, 0) + M[i][0] (premiere colonne : on ne peut venir que d'en haut) - C(0, j) = C(0, j-1) + M[0][j] (premiere ligne : on ne peut venir que de la gauche) - C(i, j) = M[i][j] + min(C(i-1, j), C(i, j-1)) sinon

Exemples

AppelRésultat attendu
chemin_min([[1, 3, 1], [1, 5, 1], [4, 2, 1]]) 7
chemin_min([[1, 2], [3, 4]]) 7

Votre code

Connectez-vous pour soumettre du code.