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
}