各ペアが整数の合計を与えるように、配列のペアの数を数えようとしています!整数の合計の異なるペアの数を見つける
私は、次のコードを使用:
public static int SumPairs(Integer []input, int k){
Map<Integer, Integer> pairs = new HashMap<Integer, Integer>();
int tmp=0;
//System.out.println(pairs.toString());
for(int i=0;i<input.length;i++){
if(pairs.containsKey(input[i])){
System.out.println(pairs.containsKey(input[i]));
System.out.println(input[i] +", "+ pairs.get(input[i]));
input[i]=0;
tmp++;
}
else
pairs.put(k-input[i], input[i]);
}return tmp;
}
問題があるが、私の配列が1 2 2 2 3 4 4 4
とsum = 5
とき
(4,1)
(4,1)
(4,1)
(3,2)
次私は複数回番号を使用してからメソッドを禁止するよう例えばそれは計算! ので、出力は今、それが完璧に動作するはず
(4,1)
(3,2)
は、入力配列は要素間、それは前任者だ違いは、(あなたの例の配列が提案する1より大きくなることはありませんどこの昇順にソートされることが保証されてそう)? – Calculator
通常、アレイはどのような順序でも構いません。最初に並べ替えるべきですか? –
入力がソートされていない場合は、ソートされません。そうしないと、実行時の複雑さが増します。私はちょうど問題を簡略化したので、尋ねました。 – Calculator