1512. Number of Good Pairs
Easy
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:
1 <= nums.length <= 100
1 <= nums[i] <= 100
Runtime: 0 ms, faster than 100.00%
Memory Usage: 1.9 MB, less than 85.00%
先記錄每個元素出現的次數,就是可能的配對數就是 C 出現次數 取 2 ,也就是 (count*(count-1))/2
func numIdenticalPairs(nums []int) int {
counts := make([]int, 100)
ans := 0
for _, val := range nums {
counts[val-1]++
}
for _, count := range counts {
if count>1 {
ans += (count*(count-1))/2
}
}
return ans
}