以下のコードのように、3つのソートされた配列から最大5つの数を取得する他の最良の方法はありますか?
アップデート:
以下のコードで結果が得られますが、これが唯一の方法かどうかはわかりません
入力配列に重複が含まれている可能性がありますが、結果は重複してはなりません
効率的とは、結果を得るまでに必要な反復回数が少ないことを意味します。
linq固有の回答を探しています。
private void Take5MaxNumbers()
{
var a1 = new[] { 10, 25, 45, 65, 76 };
var a2 = new[] { 32, 43, 54, 62, 78, 85, 93, 102 };
var a3 = new[] { 54, 74, 98, 105 };
var finalArray = a1.Union(a2).Union(a3).OrderByDescending(x => x).Take(5);
foreach (var item in finalArray)
{
Console.Write(item + " ");
}
}
// Output:
105 102 98 93 85