秘書の問題を解決する
秘書の問題は、これと述べた有名な問題です。 新しい秘書が必要です N人の応募者がいて、一度に1人ずつ面接できます 面接後に各応募者を採点できます。あなたのスコアリングシステムは、2人の志願者に同じスコアを与えることはありません 応募者に面接した後、すぐに「はい」または「いいえ」を提出する必要があります 最高得点の応募者が欲しい 解決策は、最初のfloor(N/e)応募者にインタビューし、それまでの応募者全員よりも高いスコアを持つ最初の応募者を受け入れることです。申請者のいずれもより高い場合、最後の申請者を返します。おもしろいことに、これは1/e時間の上位の申請者にパーセントを与えます。 オイラーの番号をe指します。の値を取得するにはeは、組み込みのを使用するlogか、少なくとも5つの小数点にハードコードします。 入力: 以下の一意の非負整数の空でない配列 2^31-1。 出力: 選択された候補を表す整数。アルゴリズムを明確にするために: 最初の最大要素を見つける floor(N/e)配列の要素で。 残りの要素を反復処理し、手順1で見つかった最大値よりも大きい最初の要素を返します。 いずれの要素も高ければ、最後の要素を返します。 たとえば、配列が[2,7,4,3,9,20]であったN = 6としfloor(N/e) = 2ます。配列の最初の2つの要素は[2,7]です。の最大値は[2,7]です7。残りの要素は[4,3,9,20]です。大きい最初の要素7である9私たちが戻るので、9。 テストケース: [0] => 0 [100] => 100 [100, 45] => 100 [0, 1] => 0 [45, 100] => 45 [1, 4, 5] => 4 [1, 5, 4] => …