Add reversed integers of all elements to the array. Return count of distinct integers.
Input: nums=[1,13,10,12,31] → Output: 6. Reversed: [1,31,1,21,13]. Union = {1,10,12,13,21,31} = 6 distinct.
Input: nums=[2,2,2] → Output: 1
Add each number and its reverse to a set. Count set size.
- Use a HashSet
- For each num in nums: add num and reverse(num) to set
- Return set size
public int countDistinctIntegers(int[] nums) {
Set<Integer> set = new HashSet<>();
for (int num : nums) {
set.add(num);
set.add(reverse(num));
}
return set.size();
}
private int reverse(int num) {
int rev = 0;
while (num > 0) { rev = rev * 10 + num % 10; num /= 10; }
return rev;
}
- Time Complexity: O(n log n)
- Space Complexity: O(n)