# 【LeetCode】 1512. Number of Good Pairs
## Description
> 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`.
> Constraints:
> * `1 <= nums.length <= 100`
> * `1 <= nums[i] <= 100`
## Example:
```
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
```
## Solution
* 去計算每個數字以前出現過幾次,good pairs 就有多少
* 使用 map 實作
### Code
```C++=1
class Solution {
public:
int numIdenticalPairs(vector<int>& nums) {
map<int, int> counter;
int ans = 0;
for(int i = 0; i < nums.size(); i++)
{
ans += counter[nums[i]];
counter[nums[i]]++;
}
return ans;
}
};
```
###### tags: `LeetCode` `C++`