欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[LeetCode]532. K-diff Pairs in an Array

程序员文章站 2022-03-07 18:27:55
...

[LeetCode]532. K-diff Pairs in an Array

题目描述

[LeetCode]532. K-diff Pairs in an Array

思路

哈希,计数
如果k为负,直接返回0
如果k为0,即为求重复元素

代码

#include <iostream>
#include <unordered_map>
#include <vector>
#include <algorithm>

using namespace std;

class Solution {
public:
    int findPairs(vector<int>& nums, int k) {
        int res = 0;
        if (k < 0)
            return res;
        unordered_map<int, int> um;
        for (int num : nums)
            um[num]++;
        for (auto p : um) {
            if (k == 0) {
                if (p.second > 1) res += 1;
            }
            else {
                if (um.count(p.first + k)) res += 1;
            }
        }
        return res;
    }
};

int main() {
    vector<int> nums = { 1,2,3,4,5 };
    Solution s;

    cout << s.findPairs(nums, -1) << endl;

    system("pause");
    return 0;
}
相关标签: leetcode