整数配列リスト int[] マーク = {2,3,4,5,4,5,6,2,9}; があります。
このリストですべての重複を取得したいのですが、配列は一度だけトラバースする必要があります。すべての inbuild 関数はすべての検索をトラバースするため、inbuild 関数は使用しないでください。
期待される結果は 2,4,5 である必要があります
このリストを 1 回だけトラバースできるという条件が満たされている限り、さらに 2 つのリスト (1 つの非重複リストと 1 つの重複リスト) を作成できます。
入力リストを反復処理し、重複していないものに int があるかどうかを確認します。そうでない場合は追加し、ある場合は、dup にまだ含まれていない場合は追加します。最終的に、dup には要求された結果が含まれるはずです。
int[] marks = { 2, 3, 4, 5, 4, 5, 6, 2, 9 };
Dictionary<int, bool> flags = new Dictionary<int, bool>();
HashSet<int> result = new HashSet<int>();
for (int index = 0; index < marks.Length; index++)
{
if (flags.ContainsKey(marks[index])) result.Add(marks[index]);
else flags.Add(marks[index], true);
}
これに従って、線形時間で重複を見つけます