Count Distinct Integers After Reverse Operations

Add reversed integers of all elements to the array. Return count of distinct integers.

Example 1
Input: nums=[1,13,10,12,31] → Output: 6. Reversed: [1,31,1,21,13]. Union = {1,10,12,13,21,31} = 6 distinct.
Example 2
Input: nums=[2,2,2] → Output: 1

Solution Approach

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
Java
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)