誰かに以下のコードの時間の複雑さを教えてもらえますか?Javaで時間の複雑さが設定されている
a
はintの配列です。
Set<Integer> set = new HashSet<Integer>();
for (int i = 0; i < a.length; i++) {
if (set.contains(arr[i])) {
System.out.println("Hello");
}
set.add(arr[i]);
}
は、私はそれがO(n)のあると思うが、それはSet
を使用しているので、私はわからないんだけど、これは、同様のメソッドが含まれています。またadd
メソッドをset
と呼びます。
上記のコード全体の時間の複雑さを確認して説明できますか?また、どれくらいのスペースが必要ですか?
整数の場合、空間の複雑さはどのように2nですか?私はそれを得ていない。簡単に説明できますか? – anon
それは面白いです。私は、最初の時間複雑度はO(a.len)* O(arr.len)すなわち、O(N^2)であるだろうと思いました。 HashSetが実際にとても有用であることを知っておきましょう。 –