-4

整数配列リスト int[] マーク = {2,3,4,5,4,5,6,2,9}; があります。

このリストですべての重複を取得したいのですが、配列は一度だけトラバースする必要があります。すべての inbuild 関数はすべての検索をトラバースするため、inbuild 関数は使用しないでください。

期待される結果は 2,4,5 である必要があります

4

3 に答える 3

1

このリストを 1 回だけトラバースできるという条件が満たされている限り、さらに 2 つのリスト (1 つの非重複リストと 1 つの重複リスト) を作成できます。

入力リストを反復処理し、重複していないものに int があるかどうかを確認します。そうでない場合は追加し、ある場合は、dup にまだ含まれていない場合は追加します。最終的に、dup には要求された結果が含まれるはずです。

于 2013-03-25T04:45:12.497 に答える
1
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);
}
于 2013-03-25T04:50:20.687 に答える
0

これに従って、線形時間で重複を見つけます

于 2013-03-25T04:45:27.280 に答える