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.
首先统计每个数字出现的次数 n;
ans +=
代码如下:
class Solution {
public:
int numIdenticalPairs(vector<int>& nums) {
unordered_map<int,int> map;
for(auto x: nums)
map[x]++;
int res = 0;
for(auto [v,c]:map)
res += c * (c -1)/2;
return res;
}
};