1512.好数对的数目

题目描述:

给你一个整数数组 nums 。

如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。

返回好数对的数目。

示例1:

输入:nums = [1,2,3,1,1,3]
输出:4
解释:有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始

 

利用unordered_map函数,用count判断是否存在,在进行相加,输出结果

class Solution {
public:
    int numIdenticalPairs(vector<int>& nums) {
        unordered_map<int, int> q;
        for(int num :nums) {
            ++q[num];
        }
        int res = 0;
        for(int s : nums) {
            if(q.count(s)) {
                --q[s];
                res = res + q[s];
            }
        }
        return res;
    }
};

运行结果:

 

posted @ 2020-07-14 13:50  Captand  阅读(173)  评论(0编辑  收藏  举报