Last updated on October 5th, 2024 at 06:04 pm
Here, We see K-diff Pairs in an Array LeetCode Solution. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc. with different approaches.
List of all LeetCode Solution
Topics
Array, Two Pointers
Companies
Amazon
Level of Question
Medium
K-diff Pairs in an Array LeetCode Solution
Table of Contents
Problem Statement
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).
1. K-diff Pairs in an Array LeetCode Solution C++
class Solution { public: int findPairs(vector<int>& nums, int k) { unordered_map<int,int> a; for(int i:nums) a[i]++; int ans=0; for(auto x:a){ if(k==0){ if(x.second>1) ans++; } else if(a.find(x.first+k)!=a.end()) ans++; } return ans; } };
2. K-diff Pairs in an Array LeetCode Solution Java
class Solution { public int findPairs(int[] nums, int k) { Map<Integer, Integer> map = new HashMap(); for (int num : nums) map.put(num, map.getOrDefault(num, 0) + 1); int result = 0; for (int i : map.keySet()) if (k > 0 && map.containsKey(i + k) || k == 0 && map.get(i) > 1) result++; return result; } }
3. K-diff Pairs in an Array Solution JavaScript
var findPairs = function(nums, k) { if(nums.length === 0 || k < 0) return 0 let myMap = new Map(), count = 0 for(num of nums){ myMap.set(num,(myMap.get(num)+1) || 1) } myMap.forEach((value,key) =>{ if(k === 0){ if(value > 1) count++ } else{ if(myMap.has(key+k)) count++ } }) return count };
4. K-diff Pairs in an Array Solution Python
class Solution(object): def findPairs(self, nums, k): cnt=0 c=Counter(nums) if k==0: for key,v in c.items(): if v>1: cnt+=1 else: for key,v in c.items(): if key+k in c: cnt+=1 return cnt