0

私はこれに頭を悩ませているようには見えませんが、さまざまな要素を含む配列が与えられたとしましょう。最初の配列の一意の要素のみを使用して別の配列を作成したい場合、Maps、HashSets などを使用せずに (Java から他のものをインポートせずに)、どうすればそれを行うことができますか?

4

2 に答える 2

3

単純なブルートフォースアルゴリズム。
配列を(ダブル)ループして、要素が繰り返されているかどうかを確認します。そうでない場合は、アレイに追加して続行します。またはを使用したO(N^2)複雑さの代わりに複雑さO(N)MapSet

于 2013-03-20T22:22:40.737 に答える
0

これに賛成票を投じないでください。クラティラスの回答を参照してください。または、ハープンのコメントを参照してください。これは、O(n 2 ) の複雑さを持つソリューションの「疑似コード」にすぎません。


foreach element1 in array:
    duplicate = false
    foreach element2 in array:
        if element 1 == element 2:
            duplicate = true
            break // out of inner loop
    if duplicate:
       // duplicate
    else:
       // not duplicate

もちろん、これはもう少し高いレベルでよりきれいに表現できます。「含む」の定義は明白であるべきです。

foreach element in array:
   if contains(array, element):
       // duplicate
于 2013-03-20T22:30:48.237 に答える