> For the complete documentation index, see [llms.txt](https://anton-veselskyi.gitbook.io/codding-problems-solutions/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anton-veselskyi.gitbook.io/codding-problems-solutions/leetcode/easy/number-of-good-pairs.md).

# Number of Good Pairs

## [Number of Good Pairs](https://leetcode.com/problems/number-of-good-pairs)

Given an array of integers `nums`.

A pair `(i,j)` is called *good* if `nums[i]` == `nums[j]` and `i` < `j`.

Return the number of *good* pairs.

**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`

## Solutions

### 🧠 Cpp

```cpp
class Solution {
public:
    int numIdenticalPairs(vector<int>& nums)
    {
        size_t counter = 0;
        for(auto iter = nums.begin(); iter != nums.end(); ++iter)
            counter += std::count(std::next(iter), nums.end(), *iter);

        return counter;

    }
};
```
