题目:
分析:
看题首先想到了哈希存每个数出现的次数,在遍历数组时只需要把这个数出现的次数+1,并查出这个数+-2的两个数出现的次数相加到总数中,在遍历完数组后就得到了结果。
代码:
class Solution {
public int countKDifference(int[] nums, int k) {
HashMap<Integer,Integer> hash=new HashMap<Integer,Integer>();
int sum=0;
for(int i:nums){
if(hash.containsKey(i-k)){
sum+=hash.get(i-k);
}
if(hash.containsKey(i+k)){
sum+=hash.get(i+k);
}
if(!hash.containsKey(i)){
hash.put(i,1);
}else{
hash.put(i,1+hash.get(i));
}
}
return sum;
}
}