Skip to content

Commit 4c4b62f

Browse files
committedJul 17, 2021
solves k diff pair inan array
1 parent 4c64374 commit 4c4b62f

File tree

3 files changed

+50
-1
lines changed

3 files changed

+50
-1
lines changed
 

‎README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@
140140
| 520 | [Detect Capital](https://leetcode.com/problems/detect-capital) | Easy | [![Java](assets/java.png)](src/DetectCapital.java) [![Python](assets/python.png)](python/detect_capital.py) |
141141
| 521 | [Longest Uncommon Subsequence I](https://leetcode.com/problems/longest-uncommon-subsequence-i) | Easy | [![Java](assets/java.png)](src/LongestUncommonSubsequenceI.java) [![Python](assets/python.png)](python/longest_uncommon_subsequence_I.py) |
142142
| 530 | [Minimum Absolute Difference in BST](https://leetcode.com/problems/minimum-absolute-difference-in-bst) | Easy | [![Java](assets/java.png)](src/MinimumAbsoluteDifferenceInBST.java) [![Python](assets/python.png)](python/minimum_absolute_difference_in_bst.py) |
143-
| 532 | [K - Diff Pairs in Array](https://leetcode.com/problems/k-diff-pairs-in-an-array) | Easy | |
143+
| 532 | [K - Diff Pairs in Array](https://leetcode.com/problems/k-diff-pairs-in-an-array) | Easy | [![Java](assets/java.png)](src/KDiffPairsInAnArray.java) [![Python](assets/python.png)](python/k_dif_pairs_in_an_array.py) |
144144
| 538 | [Convert BST to Greater Tree](https://leetcode.com/problems/convert-bst-to-greater-tree) | Easy | |
145145
| 541 | [Reverse String II](https://leetcode.com/problems/reverse-string-ii) | Easy | |
146146
| 543 | [Diameter of Binary Tree](https://leetcode.com/problems/diameter-of-binary-tree) | Easy | |

‎python/k_dif_pairs_in_an_array.py

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
def findPairs(self, nums: List[int], k: int) -> int:
6+
pairs = 0
7+
if k == 0:
8+
frequencies = {}
9+
for number in nums:
10+
frequencies[number] = frequencies.get(number, 0) + 1
11+
for frequency in frequencies.values():
12+
pairs += 1 if frequency > 1 else 0
13+
else:
14+
numbers = set()
15+
for number in nums:
16+
if number not in numbers:
17+
pairs += 1 if (number - k) in numbers else 0
18+
pairs += 1 if (number + k) in numbers else 0
19+
numbers.add(number)
20+
return pairs

‎src/KDiffPairsInAnArray.java

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import java.util.HashMap;
2+
import java.util.HashSet;
3+
import java.util.Map;
4+
import java.util.Set;
5+
6+
public class KDiffPairsInAnArray {
7+
public int findPairs(int[] nums, int k) {
8+
int pairs= 0;
9+
if (k == 0) {
10+
Map<Integer, Integer> frequencies = new HashMap<>();
11+
for (int number : nums) {
12+
frequencies.put(number, frequencies.getOrDefault(number, 0) + 1);
13+
}
14+
for (int frequency : frequencies.values()) {
15+
pairs += frequency > 1 ? 1 : 0;
16+
}
17+
} else {
18+
Set<Integer> numbers = new HashSet<>();
19+
for (int number : nums) {
20+
if (!numbers.contains(number)) {
21+
pairs += numbers.contains(number - k) ? 1 : 0;
22+
pairs += numbers.contains(number + k) ? 1 : 0;
23+
numbers.add(number);
24+
}
25+
}
26+
}
27+
return pairs;
28+
}
29+
}

0 commit comments

Comments
 (0)
Please sign in to comment.