# 【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++`