力扣 2006. 差的绝对值为 K 的数对数目

题目:

力扣 2006. 差的绝对值为 K 的数对数目

分析:

        看题首先想到了哈希存每个数出现的次数,在遍历数组时只需要把这个数出现的次数+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;
    }
}

上一篇:题解 【P7567 「MCOI-05」魔仙】


下一篇:leetcode2181. 合并零之间的节点(mid)(281)