/*
* @lc app=leetcode id=532 lang=cpp
*
* [532] K-diff Pairs in an Array
*/
// @lc code=start
class Solution {
public:
int findPairs(vector<int>& nums, int k) {
int N = nums.size();
if(N < 2) return 0;
unordered_map<int,int> mp;
int ans = 0;
if(k == 0 ){
for(int i=0;i<N;i++){
if(mp[nums[i]] == 1) {
ans ++ ;
}
mp[nums[i]] ++ ;
}
}else{
for(int i=0;i<N;i++){
if(mp[nums[i]] > 0) continue;
if(mp[nums[i] - k] > 0){
ans ++;
}
if(mp[nums[i] + k] > 0){
ans ++;
}
mp[nums[i]]++;
}
}
return ans;
}
};
// @lc code=end