View Number of Good Pairs on LeetCode
Statistics
Time Spent Coding
10 minutes
Time Complexity
O(n) - Each element in the input list is visited once, resulting in the O(n) time complexity.
Space Complexity
O(n) - In the worst-case scenario, each number in the input list is unique, requiring the duplication of each element, resulting in an O(n) space complexity.
Runtime Beats
73.43% of other submissions
Memory Beats
98.97% of other sumbissions
Explanation
Pairs are recorded in the pairs
dictionary, and total
is the sum of all the possible pairs.
For each element in nums, check if it is in pairs:
- If true, add the total number of pairs before the current iteration and then add one.
- If false, add the element to the pairs dictionary.
The repetition of this if statement replicates the formula to calculate combinations and accurately calculates the number of pairs in the input list.
Data Structure Used
Hash Map (Dictionary) - A data structure that maps keys to their values. Each key may only appear once.
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution:
def numIdenticalPairs(self, nums: List[int]) -> int:
pairs = {}
total = 0
for n in nums:
if n in pairs:
total += pairs[n]
pairs[n] += 1
else:
pairs[n] = 1
return total