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
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.
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.