Exercices corrigés sur les tableaux -TD1

26 Apr 2019 26 Apr 2019 18082 vues ESSADDOUKI Mostafa 10 min de lecture

Exercices corrigés sur les tableaux - Niveau avancé

Cette section contient une série d'exercices avancés sur la manipulation des tableaux, avec différents niveaux de difficulté. Chaque exercice est présenté avec son énoncé, une solution détaillée et des exemples d'entrée/sortie.

Exercice 1 — Mise à jour circulaire

Exercice

Remplacer chaque élément par la somme des deux suivants (circulaire)

Niveau : Intermédiaire

Étant donné un tableau tab[] de taille n, la tâche consiste à remplacer chaque élément du tableau par la somme des deux éléments suivants consécutifs de manière circulaire, à savoir :

  • tab[0] = tab[1] + tab[2]
  • tab[1] = tab[2] + tab[3]
  • ...
  • tab[n-1] = tab[0] + tab[1]
Exemples
Entrée 1
tab = [3, 4, 2, 1, 6]
Sortie 1
[6, 3, 7, 9, 7]
Explication :
  • tab[0] = 4 + 2 = 6
  • tab[1] = 2 + 1 = 3
  • tab[2] = 1 + 6 = 7
  • tab[3] = 6 + 3 (first) = 9
  • tab[4] = 3 + 4 (first+second) = 7

Exercice 2 — Achat de bonbons avec contraintes

Exercice

Maximiser l'achat de bonbons sous contraintes

Niveau : Avancé

Soit un tableau tab[] de taille n où tab[i] est la quantité de bonbons de type i. Vous avez une somme illimitée d'argent. La tâche consiste à acheter le plus grand nombre possible de bonbons répondant aux conditions suivantes :

Si vous achetez x(i) bonbons de type i (0 ≤ x(i) ≤ tab[i]), alors pour tout j (1 ≤ j ≤ i), au moins une des conditions suivantes doit être respectée :

  • x(j) < x(i) (vous avez acheté moins de bonbons de type j que de type i)
  • x(j) = 0 (vous avez acheté 0 bonbons de type j)
Exemples
Entrée 1
tab = [1, 2, 1, 3, 6]
Sortie 1
10
Explication : On peut acheter : 2 du type 5, 1 du type 4, 3 du type 3, 2 du type 2, 2 du type 1? Non, vérifions la solution : 10 est le total optimal.

Exercice 3 — Différence absolue des sommes positives et négatives

Exercice

Remplacer par la différence des sommes à droite

Niveau : Avancé

Étant donné un tableau d'éléments positifs et négatifs. La tâche consiste à remplacer chaque i-ème élément du tableau par la différence absolue des sommes absolues des éléments positifs et négatifs dans l'intervalle i+1 à N.

C'est-à-dire : trouver la somme absolue de tous les éléments positifs et la somme absolue de tous les éléments négatifs dans la plage i+1 à N. Ensuite, trouver la différence absolue entre ces deux sommes et remplacer le i-ème élément par cette valeur.

Exemples
Entrée 1
tab = [1, -1, 2, 3, -2]
Sortie 1
[2, 3, 1, 2, 0]
Exemples
Entrée 2
tab = [-3, -4, -2, 5, 1, -2]
Sortie 2
[2, 2, 4, 1, 2, 0]
Contraintes
  • 1 ≤ n ≤ 10⁵
  • Les éléments peuvent être positifs ou négatifs

Récapitulatif des complexités

ExerciceApproche naïveApproche optimisée
Exercice 1O(n)O(n) (direct)
Exercice 2O(n) (glouton)
Exercice 3O(n²)O(n) (parcours inverse)
Points clés à retenir
  • Pour les mises à jour circulaires, il faut sauvegarder les premières valeurs avant modification.
  • Les problèmes avec contraintes de décroissance se résolvent souvent par une approche gloutonne depuis la fin.
  • Pour les calculs de sommes sur des suffixes, parcourir de droite à gauche permet d'obtenir une complexité O(n).
  • La différence entre solutions naïves et optimisées peut être considérable (O(n²) vs O(n)).
Sortie
// La sortie apparaîtra ici…
Prêt · Ctrl+Entrée pour exécuter

Discussion (0)

Soyez le premier à laisser un commentaire !

Laisser un commentaire

Votre commentaire sera visible après modération.