配列に入った a[0], a[1], ... a[n-1] までのn個の異なる整数があります.
このうちの2つの和の最大値を求める処理を書いて,計算時間を,O()記号を使って説明してください.
実行できるプログラムでなくて,ある程度抽象的な書き方でも良いです.
「昇順にソートする」「最大値を取り出す」ような関数を使ってもよいですが,
O()の意味で劣る(遅い)場合には減点します.
以下のようなアルゴリズムで実現できます.
このアルゴリズムの計算時間は,ハッシュテーブルの格納にO(n)かかりますが,それ以外の処理は全てO(1)で行われますので,全体の計算時間はO(n)となります。