C++零基础100题 - 好数对的数目

103 阅读1分钟

题目描述

image.png

解题思路

  1. 首先我们得到一个数组
  2. 给这个数组分配空间。然后给每个元素+1
  3. 最后每个元素遍历公式为x*(x-1)/2

代码实现

class Solution {
public:
    int numIdenticalPairs(vector<int>& nums) {
        int hash[110],sum=0;
        memset(hash,0,sizeof(hash));
        for(int i=0;i<nums.size();++i){
            ++hash[nums[i]];
        }
        for(int i=1;i<=100;++i){
            int x=hash[i];
            sum+=x*(x-1)/2;
        }
        return sum;
    }
};