Count Nice Pairs in an Array
MediumArrayHash TableMathCounting
Solution
export function countNicePairs(nums: number[]): number {
const MOD = 10 ** 9 + 7;
const rev = (num: number) => {
return parseInt([...num.toString()].reverse().join(''), 10);
};
const counter = new Map<number, number>();
for (const num of nums) {
const sub = num - rev(num);
counter.set(sub, (counter.get(sub) ?? 0) + 1);
}
let answer = 0;
counter.forEach((count) => {
answer += (count * (count - 1)) / 2;
answer %= MOD;
});
return answer;
}