1512. Number of Good Pairs

Easy

Given an array of integers nums, return the number of good pairs.

A pair (i, j) is called good if nums[i] == nums[j] and i < j.

Example 1:

Input: nums = [1,2,3,1,1,3]
Output:
 4
Explanation:
 There are 4 good pairs (0,3), (0,4), (3,4), (2,5) 0-indexed.

Example 2:

Input: nums = [1,1,1,1]
Output:
 6
Explanation:
 Each pair in the array are good.

Example 3:

Input: nums = [1,2,3]
Output:
 0

Constraints:

  • 1 <= nums.length <= 100

  • 1 <= nums[i] <= 100

解題

Runtime: 0 ms, faster than 100.00%

Memory Usage: 1.9 MB, less than 85.00%

先記錄每個元素出現的次數,就是可能的配對數就是 C 出現次數 取 2 ,也就是 (count*(count-1))/2

func numIdenticalPairs(nums []int) int {
    counts := make([]int, 100)
    ans := 0
    
    for _, val := range nums {
        counts[val-1]++
    }
    
    for _, count := range counts {
        if count>1 { 
            ans += (count*(count-1))/2
        }
    }
    
    return ans
}

Last updated