leetcode-数组-好数队的对数

44 阅读1分钟

给你一个整数数组 nums 。如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。返回好数对的数目。

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

第一种解法

func numIdenticalPairs(nums []int) int {
    idx := map[int]int{}
    var res int
    for _, num := range nums {
        if _, ok := idx[num]; ok {
            res += idx[num]
        }
        idx[num]++
    }
    return res
}