Skip to content

Latest commit

 

History

History

1512 - Number of Good Pairs

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

1512. Number of Good Pairs share

Problem Statement

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

Click to open Hints

  • Count how many times each number appears. If a number appears n times, then n * (n – 1) // 2 good pairs can be made with this number.

Solutions

impl Solution {
    pub fn num_identical_pairs(nums: Vec<i32>) -> i32 {
        let mut count = 0;
        let mut map = std::collections::HashMap::new();

        for num in nums {
            let entry = map.entry(num).or_insert(0);
            count += *entry;
            *entry += 1;
        }

        count
    }
}