Todos os desafios
Fácil 0 resolvidos 0% de aceitação

Above-Average Values

Keep the values that are greater than the average.

O que você vai aprender

  • Calcular primeiro uma média
  • Filtrar valores em uma segunda passada
  • Manter a ordem 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).

Restrições

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

Exemplos

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

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

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

Saída esperada:
long[] expected = new long[] {10};

Explicação

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

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

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

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

Saída esperada:
long[] expected = new long[] {};

Explicação

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

Como abordar

Tente sozinho primeiro e depois abra uma dica de cada vez.

Dica 1

Primeiro encontre a média da lista e depois mantenha os valores estritamente acima dela.

Dica 2

Normalmente isso pede uma passagem para medir o total e outra para coletar as correspondências.

Dica 3

Se a lista estiver vazia, a resposta também deve ser vazia.

Complexidade esperada

tempo O(n), espaço extra O(1)

Referências

Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.

Aprenda com outros

Soluções da comunidade

Ainda não há soluções publicadas. Resolva este desafio para compartilhar a primeira.