Bonjour.
J'ai codé la fonction pour le pathfinger.
Je cite :
"On dispose d'une matrice de taille n*n. En partant de (1, 1) (le coin supérieur gauche), vous devez trouver le chemin
allant au coin inférieur droit (n, n) dont la somme des cases par lesquelles il passe est la plus grande possible.
Attention : vous pouvez seulement vous déplacer vers la droite ou vers le bas."
Elle fonctionne correctement mais je dépasse la limite de temps.
La fonction prend tout les chemins possibles et lorsque qu' "elle" arrive au point n, n elle regarde si la somme est
supérieur au maximum trouvé jusque là.
Elle fonctionne par récurrence.
Voici la fonction (je la post vu que de toute manière elle n'est pas la bonne)
int max = 0;
int somme = 0;
void pathfinder(int size, int **tab, int ligne, int colonne)
{
somme += tab[ligne][colonne];
if (ligne + 1 pathfinder (size, tab, ligne+1, colonne);
if (colonne + 1 pathfinder (size, tab, ligne, colonne+1);
if (ligne == size-1 && colonne == size-1 && somme > max)
max = somme;
somme -= tab[ligne][colonne];
}
En fait je ne voie par d'autres méthodes possibles. Ma question est donc :
Est-ce ma méthode qui est en cause (càd étudier toutes les possibilités) ou le codage (par exemple utiliser la
récurrence) ?
Merci d'avance
PS: Ne me donnez pas la solution mais plutôt des indices :p