Tous les défis
Facile 0 résolus 0 % de réussite

Above-Average Values

Keep the values that are greater than the average.

Ce que vous allez apprendre

  • Calculer d'abord une moyenne
  • Filtrer les valeurs lors d'un second passage
  • Conserver l'ordre d'origine

Problème

Compute the average of the list, then keep only the values strictly greater than it, in their original order.

Implement above_average(numbers).

Input

numbers: The list of integers.

Output

Return the values above the average (an empty list for an empty input).

Contraintes

0 ≤ length ≤ 10,000; -1,000,000 ≤ each value ≤ 1,000,000

Exemples

Exemple 1
Entrée :
numbers = [1, 2, 3, 4, 10]

Sortie attendue :
expected = [10]
Entrée :
std::vector<long long> numbers = {1, 2, 3, 4, 10};

Sortie attendue :
std::vector<long long> expected = {10};
Entrée :
long[] numbers = new long[] {1, 2, 3, 4, 10};

Sortie attendue :
long[] expected = new long[] {10};

Explication

The average is 20 / 5 = 4; only 10 is greater than 4.

Exemple 2
Entrée :
numbers = [5, 5, 5]

Sortie attendue :
expected = []
Entrée :
std::vector<long long> numbers = {5, 5, 5};

Sortie attendue :
std::vector<long long> expected = {};
Entrée :
long[] numbers = new long[] {5, 5, 5};

Sortie attendue :
long[] expected = new long[] {};

Explication

Every value equals the average 5, so none is greater: [].

Comment l'aborder

Essayez d'abord seul, puis ouvrez les indices un par un.

Indice 1

Commence par trouver la moyenne de la liste, puis garde les valeurs strictement au-dessus.

Indice 2

Cela demande généralement un premier passage pour calculer le total et un second pour collecter les éléments correspondants.

Indice 3

Si la liste est vide, la réponse doit aussi être vide.

Complexité attendue

temps O(n), espace supplémentaire O(1)

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.