zoukankan      html  css  js  c++  java
  • LeetCode532. K-diff Pairs in an Array

    Description

    Given an array of integers and an integer k, you need to find the number of unique k-diff pairs in the array. Here a k-diff pair is defined as an integer pair (i, j), where i and j are both numbers in the array and their absolute difference is k.
    Example 1:

    Input: [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:[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: [1, 3, 1, 5, 4], k = 0
    Output: 1
    Explanation: There is one 0-diff pair in the array, (1, 1).

    my program

    思路:本题主要需要理解题目中给出的k-diff这个新概念,明白了后就不难解出答案。
    利用一个map储存数组中的数字,以及出现的次数。当k=0的时候,统计map中value大于1的key的数目,即为所求k-diff的个数;当k>0的时候查找key=key+k在map中是否存在,若存在即k-diff对,count+1

    class Solution {
    public:
        int findPairs(vector<int>& nums, int k) {
            int count = 0;
            if (k < 0) return count;
            map<int, int> mp;
            for (auto number : nums) {
                mp[number]++;
            }
            map<int, int>::iterator it;
            if (k == 0) {
                for (it = mp.begin(); it != mp.end(); it++) {
                    if (it->second > 1)
                        count++;
                }
            }
            else {
                for (it = mp.begin(); it != mp.end(); it++) {
                    if (mp.find(it->first+k) != mp.end())
                        count++;
                }
            }
            return count;
        }
    };

    Submission Details
    72 / 72 test cases passed.
    Status: Accepted
    Runtime: 39 ms

  • 相关阅读:
    爬虫解析库:XPath
    手写一个小型打包构建工具
    Python网络爬虫神器PyQuery的使用方法
    人脸识别JavaScript也可以轻松搞定
    颜值即正义!这几个库颠覆你对数据交互的想象
    微信朋友圈自动点赞
    android studio的安装信息
    Docker使用笔记
    C语言联合
    Mac之Sublime Text使用Go
  • 原文地址:https://www.cnblogs.com/yangjiannr/p/7391330.html
Copyright © 2011-2022 走看看