-3

以下の効率的なJava関数を書くのを手伝ってくれる人はいますか?

内部ソートまたは重複排除機能を使用せずに、重複するエントリを含む配列を取得し、重複のない新しい配列を返します。例えば

deduplicate(array(2,5,10,1, “john" “andy", 5, “peter”, “andy”)) 

// 2,5,10,1、「ジョン」、「アンディ」、「ピーター」を返します</p>

4

1 に答える 1

0

a などのハッシュ ベースのコンテナーから開始しHashMap、配列内の各要素について、最初にコンテナー内に存在するかどうかを確認し、存在しない場合は追加します。完了したら、コンテナー内のすべての要素を配列として返します。

要素がコンテナー内にあるかどうかを確認するための各チェックは O(1) であり、各挿入は O(1) であるため、これは効率的です。配列内の各要素に対してこれを行うのは O(n) であり、最後にそれらを再度取得するのも O(n) であるため、最終的に O(n) の解になります。

実際の実装は演習としてあなたに任せます。

于 2014-06-25T20:11:43.807 に答える