今日はFacebook プログラミング チャレンジを解いてみました。私が受けた課題は、ここで見つけることができる「バーの問題」でした。チャレンジ中の私の問題は、彼らが提供した最初の例を理解することでした.
この問題は次のように要約できます。
N 人の友達がゲームをしています。それぞれが自分の前に数字のリストを持っています。
N 人の友人のそれぞれが自分のリストから番号を選び、それをゲーム管理者に報告します。次に、ゲーム管理者は報告された数字を並べ替え、K 番目に大きい数字を叫びます。
ゲーム管理者が叫ぶ可能性のあるすべての数字を数えたいとします。
その時点まで、私は問題を理解したと思っていましたが、次の例を示しました。
与えられたサンプル例では、最初のテストケースで N = 3 および K = 3 です。1 人目のリストは {2 5 3}、2 人目は {8 1 6}、3 人目は {7 4 9} です。この場合、{4, 5, 6, 7, 8, 9} のすべての数字が、選択された 3 番目に大きい数字になる可能性があります。
だから私の質問は:
7、8、9 が 3 番目に大きい選択数になるのはなぜですか?
私の意見では、数字 {1, 2, 3, 4, 5} のみが 3 番目に大きい数字になる可能性がありますが、アルゴリズムを誤解している可能性があります。