質問: 6の2つの値の組み合わせを見つける/印刷する必要があります。 私のコードは以下の通りです:(それはO(n ^ 2)で効率的ではありません)。より良いソリューション - ``` for(int out=0;out ```
回答: まず、srockで与えられる解は以下のようになるはずです ``` int length = a.length; for(int out = 0; out < length ; out++) { for(int inn = 0; inn < length; inn ++) { if ((inn != out) && ((a[inn] + a[out]) == 6)) sysout("The valid combination is "+a[inn]+" "+a[out]) } } ``` そして、もちろん、これは長さの長さを繰り返す必要があります。 aixで述べたように、containsを含むHashsetを使用すると、時間の長さだけを繰り返し、メソッドはハッシュコードを使用してバケットの場所に直接移動し、比較するデータを取得します。したがって、このHashSet :: containsメソッドは大きなデータがない場合に最適です。