-
Notifications
You must be signed in to change notification settings - Fork 0
/
solution0011.js
47 lines (35 loc) · 970 Bytes
/
solution0011.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// 1512. Number of Good Pairs
// 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 =
// Output: 4
// Explanation: There are 4 good pairs(0, 3), (0, 4), (3, 4), (2, 5) 0 - indexed.
// Example 2:
[1, 2, 3, 1, 1, 3]
// 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:
// 1 <= nums.length <= 100
// 1 <= nums[i] <= 100
var numIdenticalPairs = function (nums) {
let d = {}
nums.forEach((e, index) => {
if (d[e] === undefined) {
d[e] = [index]
} else {
d[e].push(index)
}
})
let pairs = 0
Object.keys(d).forEach(key => {
let n = d[key].length
pairs += (n * (n - 1) / 2)
})
return pairs
};
console.log(numIdenticalPairs([1, 2, 3, 1, 1, 3]));