3852. Smallest Pair With Different Frequencies
Description
You are given an integer array nums.
Consider all pairs of distinct values x and y from nums such that:
x < yxandyhave different frequencies innums.
Among all such pairs:
- Choose the pair with the smallest possible value of
x. - If multiple pairs have the same
x, choose the one with the smallest possible value ofy.
Return an integer array [x, y]. If no valid pair exists, return [-1, -1].
The frequency of a value x is the number of times it occurs in the array.
Β
Example 1:
Input: nums = [1,1,2,2,3,4]
Output: [1,3]
Explanation:
The smallest value is 1 with a frequency of 2, and the smallest value greater than 1 that has a different frequency from 1 is 3 with a frequency of 1. Thus, the answer is [1, 3].
Example 2:
Input: nums = [1,5]
Output: [-1,-1]
Explanation:
Both values have the same frequency, so no valid pair exists. Return [-1, -1].
Example 3:
Input: nums = [7]
Output: [-1,-1]
Explanation:
There is only one value in the array, so no valid pair exists. Return [-1, -1].
Β
Constraints:
1 <= nums.length <= 1001 <= nums[i] <= 100
Solutions
Solution 1: Hash Table
We use a hash table \(\textit{cnt}\) to count the frequency of each value in the array. Then we find the smallest value \(x\), and the smallest value \(y\) that is greater than \(x\) and has a different frequency from \(x\). If no such \(y\) exists, return \([-1, -1]\).
The time complexity is \(O(n)\), and the space complexity is \(O(n)\), where \(n\) is the length of the array \(\textit{nums}\).
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |