1512. Number of Good Pairs

Difficulty:
Related Topics:
Similar Questions:

Problem

Given an array of integers nums, return **the number of *good pairs***.

A pair (i, j) is called good if nums[i] == nums[j] and i < j.

  Example 1:

Input: nums = [1,2,3,1,1,3]
Output: 4
Explanation: There are 4 good pairs (0,3), (0,4), (3,4), (2,5) 0-indexed.

Example 2:

Input: nums = [1,1,1,1]
Output: 6
Explanation: Each pair in the array are good.

Example 3:

Input: nums = [1,2,3]
Output: 0

  Constraints:

Solution

/**
 * @param {number[]} nums
 * @return {number}
 */
var numIdenticalPairs = function(nums) {
    var map = Array(100).fill(0);
    for (var i = 0; i < nums.length; i++) {
        map[nums[i] - 1]++;
    }
    var res = 0;
    for (var j = 0; j < map.length; j++) {
        res += helper(map[j] - 1);
    }
    return res;
};

var helper = function(num) {
    return num * (1 + num) / 2;
};

Explain:

nope.

Complexity: