これは宿題ではなく面接の質問です。
N 人の友達がゲームをしています。それぞれが自分の前に数字のリストを持っています。
N 人の友人のそれぞれが自分のリストから番号を選び、それをゲーム管理者に報告します。次に、ゲーム管理者は報告された数字を並べ替え、K 番目に大きい数字を叫びます。
ゲーム管理者が叫ぶ可能性のあるすべての数字を数えなければなりません。
たとえば、N = 3 で K = 3 の場合、3 人の友人のリストは2 5 3
、8 1 6
、7 4 9
です。可能な値は であるため、出力は 6 です4 5 6 7 8 9
。
この問題に対してまともなアルゴリズムを提案できる人はいますか? 私がやっていることは、各リストから 1 つの数値を取得してすべての可能な順列を作成し、結果を並べ替えて k 番目に大きいものを出力することです。しかし、それには時間がかかりすぎます。