exercices corrigés sur les tableaux -TD3-

26 Apr 2019 26 Apr 2019 14225 vues ESSADDOUKI Mostafa 8 min de lecture

Problèmes de sous-tableaux

Les sous-tableaux sont des segments contigus d'un tableau. Dans cette section, nous allons explorer deux problèmes classiques : trouver un sous-tableau avec une moyenne maximale et trouver le plus grand sous-tableau avec autant de 0 que de 1.

Exercice 1

Sous-tableau de moyenne maximale

Étant donné un tableau tab[] et deux entiers X et Y. La tâche consiste à trouver un sous-tableau de taille supérieure ou égale à X et d'au plus Y, qui contient la moyenne maximale (moyenne des éléments du sous-tableau).

Exemple 1
Entrée
tab = [1, 2, 3, 4, 5]
X = 2, Y = 3
Sortie
4.5
Exemple 2
Entrée
tab = [6, 7, 8, 3, 2, 4, 2]
X = 2, Y = 4
Sortie
7.5
Explication : Le sous-tableau [6,7,8] a une moyenne de 7.0, [7,8,3] a une moyenne de 6.0, [8,3,2] a une moyenne de 4.33, [6,7,8,3] a une moyenne de 6.0, [7,8,3,2] a une moyenne de 5.0. La moyenne maximale est 7.5 pour le sous-tableau [6,7,8]? En fait 7.5 correspond à [6,7,8]? Non, (6+7+8)/3 = 7.0. Vérifions : [7,8,3,2,4]? (7+8+3+2+4)/5 = 4.8. La moyenne maximale est probablement [6,7,8] avec 7.0 ou [7,8] avec 7.5. Effectivement, [7,8] donne 7.5.
Exercice 2

Plus grand sous-tableau avec autant de 0 que de 1

Étant donné un tableau contenant uniquement des 0 et des 1, recherchez le plus grand sous-tableau contenant le même nombre de 0 et de 1. La complexité attendue est O(n).

Exemple 1
Entrée
tab = [1, 0, 1, 1, 1, 0, 0]
Sortie
1 à 6
Exemple 2
Entrée
tab = [0, 0, 1, 1, 0]
Sortie
0 à 3 ou 1 à 4
Points clés à retenir
  • Les sous-tableaux sont des segments contigus d'un tableau.
  • L'utilisation de sommes préfixes permet de calculer la somme d'un sous-tableau en O(1).
  • Pour le problème des 0 et 1, remplacer 0 par -1 transforme le problème en recherche de somme nulle.
  • La table de hachage (dictionnaire) est essentielle pour atteindre une complexité O(n).
  • La complexité optimale pour le second problème est 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.