1512. 好数对的数目

39 阅读1分钟

1512. 好数对的数目 - 力扣(LeetCode)

class Solution {
public:
    int numIdenticalPairs(vector<int>& nums) {

    int hash[101];
    int ans=0;
    memset(hash,0,sizeof(hash));

    for(int i=0;i<nums.size();++i)
    {
       ans+=hash[nums[i]];
       ++hash[nums[i]];
    }

    return ans;
    }
};

当我们有输入数组 nums = [1, 2, 3, 1, 1, 3] 时,让我们来看看代码是如何处理的。

我们首先创建一个大小为101的hash数组并将其所有元素初始化为0。然后我们初始化ans为0。

接下来,我们遍历数组nums。对于第一个元素1,我们将ans增加0(因为1之前没有与其相等的元素),然后将hash[1]的值加1,现在hash[1]为1。

对于第二个元素2,我们将ans增加0(因为2之前没有与其相等的元素),然后将hash[2]的值加1,现在hash[2]为1。

对于第三个元素3,我们将ans增加0(因为3之前没有与其相等的元素),然后将hash[3]的值加1,现在hash[3]为1。

对于第四个元素1,我们将ans增加1(因为之前出现过一个与其相等的元素1),然后将hash[1]的值加1,现在hash[1]为2。

对于第五个元素1,我们将ans增加2(因为之前出现过两个与其相等的元素1),然后将hash[1]的值加1,现在hash[1]为3。

对于第六个元素3,我们将ans增加1(因为之前出现过一个与其相等的元素3),然后将hash[3]的值加1,现在hash[3]为2。

最后,我们返回ans,即3+2+1 = 6。因此,数组中好对子的总数量为6。

这就是代码如何处理输入数组nums的示例。