文|MESeraph
双循环查找
class Solution {
public:
int numIdenticalPairs(vector<int>& nums) {
int iCount=0;
vector<int>::iterator itrExtern,itrIntern;
for(itrExtern=nums.begin(); itrExtern!=nums.end(); itrExtern++)
{
for(itrIntern=itrExtern+1; itrIntern!=nums.end(); itrIntern++)
{
if(*itrExtern == *itrIntern)
{
iCount++;
}
}
}
return iCount;
}
};
哈希表检索
class Solution {
public:
int numIdenticalPairs(vector<int>& nums) {
int iCount=0;
unordered_map<int, int> m;
for(int num:nums)
{
++m[num];
}
for(const auto &[k, v] : m)
{
iCount += v*(v-1)/2;
}
return iCount;
}
};