• 532. K-diff Pairs in an Array


    Given an array of integers nums and an integer k, return the number of unique k-diff pairs in the array.

    A k-diff pair is an integer pair (nums[i], nums[j]), where the following are true:

    • 0 <= i, j < nums.length
    • i != j
    • |nums[i] - nums[j]| == k

    Notice that |val| denotes the absolute value of val.

    Example 1:

    Input: nums = [3,1,4,1,5], k = 2
    Output: 2
    Explanation: There are two 2-diff pairs in the array, (1, 3) and (3, 5).
    Although we have two 1s in the input, we should only return the number of unique pairs.
    

    Example 2:

    Input: nums = [1,2,3,4,5], k = 1
    Output: 4
    Explanation: There are four 1-diff pairs in the array, (1, 2), (2, 3), (3, 4) and (4, 5).
    

    Example 3:

    Input: nums = [1,3,1,5,4], k = 0
    Output: 1
    Explanation: There is one 0-diff pair in the array, (1, 1).
    

    Example 4:

    Input: nums = [1,2,4,4,3,3,0,9,2,3], k = 3
    Output: 2
    

    Example 5:

    Input: nums = [-1,-2,-3], k = 1
    Output: 2
    

    Constraints:

    • 1 <= nums.length <= 104
    • -107 <= nums[i] <= 107
    • 0 <= k <= 107
    class Solution {
        public int findPairs(int[] nums, int k) {
            Map<Integer, Integer> map = new HashMap();
            for(int i : nums) {
                map.put(i, map.getOrDefault(i, 0) + 1);
            }
            int res = 0;
            for(int i : nums) {
                if(k == 0 && map.get(i) > 1) {
                    res++;
                    map.put(i, 0);
                }
                else if(k != 0 && map.containsKey(i + k) && map.get(i + k) != 0) {
                    res++;
                    map.put(i + k, 0);
                }
            }
            return res;
        }
    }

    特殊情况:k == 0,先把数字和频率存到map

    然后要判断k是否=0,如果是,就看这个数是否出现2次或以上,然后把频率变0(防止重复)

    k≠0,就看有没有对应的key,有就更新频率为0(防止重复)

  • 相关阅读:
    本周一些笔记
    [atlas] UpdatePanel失灵的解决办法
    VVR常见案例
    html5与css3权威指南读书笔记第七章 本地存储 Amy
    html5文件 Amy
    javascript原型的引入 Amy
    jquery控制背景图片的移动 Amy
    cssfloat如何改变块级元素、行内元素的性质 Amy
    html5与css3权威指南读书笔记css3中的动画功能 Amy
    html5 表单 Amy
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/13775790.html
Copyright © 2020-2023  润新知