Find the Distinct Difference Array
EasyArrayHash Table
Solution
export function distinctDifferenceArray(nums: number[]): number[] {
const answer: number[] = [];
const suffix = new Map<number, number>();
const prefix = new Map<number, number>();
nums.forEach((num) => {
suffix.set(num, (suffix.get(num) ?? 0) + 1);
});
nums.forEach((num) => {
suffix.set(num, (suffix.get(num) ?? 0) - 1);
prefix.set(num, (prefix.get(num) ?? 0) + 1);
if (suffix.get(num) === 0) {
suffix.delete(num);
}
answer.push(prefix.size - suffix.size);
});
return answer;
}