Count Nice Pairs in an Array

You are given an array nums that consists of non-negative integers. Let rev(x) be the reverse of the non-negative integer x. For example, rev(123) = 321, and rev(120) = 21.

A pair of indices (i, j) is nice if it satisfies all of the following conditions:

  • 0 <= i < j < nums.length
  • nums[i] + rev(nums[j]) == nums[j] + rev(nums[i])

Return the number of nice pairs of indices. Since that number can be too large, return it modulo 10^9 + 7.

Example 1
Inputnums = [42,11,1,97]
Output2
The two nice pairs are (0, 3) because 42 + rev(97) = 121 and 97 + rev(42) = 121, and (1, 2) because 11 + rev(1) = 12 and 1 + rev(11) = 12.
Example 2
Inputnums = [13,10,35,24,76]
Output4
There are 4 pairs of indices that satisfy the nice pair condition.

Constraints

  • 1 <= nums.length <= 10^5
  • 0 <= nums[i] <= 10^9

Asked at 6 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate