Volver a los desafíos
Fácil 0 resueltos 0% de aceptación

Above-Average Values

Keep the values that are greater than the average.

Lo que aprenderás

  • Calcular primero un promedio
  • Filtrar valores en una segunda pasada
  • Conservar el orden original

Problema

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

Restricciones

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

Ejemplos

Ejemplo 1
Entrada:
numbers = [1, 2, 3, 4, 10]

Salida esperada:
expected = [10]
Entrada:
std::vector<long long> numbers = {1, 2, 3, 4, 10};

Salida esperada:
std::vector<long long> expected = {10};
Entrada:
long[] numbers = new long[] {1, 2, 3, 4, 10};

Salida esperada:
long[] expected = new long[] {10};

Explicación

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

Ejemplo 2
Entrada:
numbers = [5, 5, 5]

Salida esperada:
expected = []
Entrada:
std::vector<long long> numbers = {5, 5, 5};

Salida esperada:
std::vector<long long> expected = {};
Entrada:
long[] numbers = new long[] {5, 5, 5};

Salida esperada:
long[] expected = new long[] {};

Explicación

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

Cómo abordarlo

Inténtalo primero por tu cuenta y luego abre las pistas una a una.

Pista 1

Primero calcula la media de la lista y luego conserva los valores estrictamente por encima.

Pista 2

Normalmente hace falta una pasada para medir el total y otra para recoger los coincidencias.

Pista 3

Si la lista está vacía, la respuesta también debe estar vacía.

Complejidad esperada

tiempo O(n), espacio extra O(1)

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.