簡単 0件解決済み 正答率0%

Above-Average Values

Keep the values that are greater than the average.

このチャレンジで学べること

  • 最初に平均を計算する
  • 2 回目の走査で値を絞り込む
  • 元の順序を保つ

問題

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

制約

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

例

例 1
入力:
numbers = [1, 2, 3, 4, 10]

期待される出力:
expected = [10]
入力:
std::vector<long long> numbers = {1, 2, 3, 4, 10};

期待される出力:
std::vector<long long> expected = {10};
入力:
long[] numbers = new long[] {1, 2, 3, 4, 10};

期待される出力:
long[] expected = new long[] {10};

解説

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

例 2
入力:
numbers = [5, 5, 5]

期待される出力:
expected = []
入力:
std::vector<long long> numbers = {5, 5, 5};

期待される出力:
std::vector<long long> expected = {};
入力:
long[] numbers = new long[] {5, 5, 5};

期待される出力:
long[] expected = new long[] {};

解説

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

解き方のヒント

まずは自分で考えてから、ヒントを 1 つずつ開いてみましょう。

ヒント 1

まずリストの平均を求め、それより厳密に大きい値だけ残す。

ヒント 2

普通は、合計を求める1回の走査と、該当要素を集めるもう1回の走査が必要。

ヒント 3

リストが空なら、答えも空にする。

目安の計算量

時間 O(n)、追加メモリ O(1)

参考資料

この課題はCodeUtility用に調整されています。上記の説明と制約に従ってください。

他の人の解答から学ぶ

コミュニティの解答

まだ公開された解答がありません。この課題を解いて最初の解答を共有しましょう。