2D配列に重複/繰り返し値があるかどうかを検出する最も簡単/単純/最も効率的な方法は何ですか?
例: 2D 配列:
{{2, 17, 4, 5} {3, 2, 34 9}}
このマトリックスには複数の「2」の値があります。
この場合、ブール値をtrueに設定したいと思います。
前もって感謝します!
2D配列に重複/繰り返し値があるかどうかを検出する最も簡単/単純/最も効率的な方法は何ですか?
例: 2D 配列:
{{2, 17, 4, 5} {3, 2, 34 9}}
このマトリックスには複数の「2」の値があります。
この場合、ブール値をtrueに設定したいと思います。
前もって感謝します!
ここでできる最善のことは O(n) だと思います。最後の要素が重複しているかどうかは、確認するまでわからないからです。ここにアイデアがあります:
の値を持っていSet
ます。2 次元配列を反復し、各要素に対して次のようにします。
if (!set.add(element))
// a duplicate was found!
これが機能するのは、Set.addが「このセットに指定された要素がまだ含まれていない場合は true」を返すためです。