1

2D配列に重複/繰り返し値があるかどうかを検出する最も簡単/単純/最も効率的な方法は何ですか?

例: 2D 配列:

{{2, 17, 4, 5} {3, 2, 34 9}}

このマトリックスには複数の「2」の値があります。

この場合、ブール値をtrueに設定したいと思います。

前もって感謝します!

4

1 に答える 1

3

ここでできる最善のことは O(n) だと思います。最後の要素が重複しているかどうかは、確認するまでわからないからです。ここにアイデアがあります:

の値を持っていSetます。2 次元配列を反復し、各要素に対して次のようにします。

if (!set.add(element))
   // a duplicate was found!

これが機能するのは、Set.addが「このセットに指定された要素がまだ含まれていない場合は true」を返すためです。

于 2013-09-10T00:13:53.727 に答える