我正在尝试计算数组中对的数量,以便每对给出一个整数的总和!
我使用了以下代码:
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)
原文由 raghad Alamri 发布,翻译遵循 CC BY-SA 4.0 许可协议
我使用存储值及其频率的地图: