Skip to content

Latest commit

 

History

History
69 lines (50 loc) · 1.42 KB

1512. Number of Good Pairs.md

File metadata and controls

69 lines (50 loc) · 1.42 KB

1. Description

Given an array of integers nums.

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

Return the number of good pairs.

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

2. Solutions

Solution 1: Language: C Two Loops, Brute Force

Brute force solution.

  • Wednesday, 21 October, 2020
  • Time Complexity: $O(n^{2})$
  • Space Complexity: $O(1)$
  • Runtime: 0 ms, faster than 100.00% of C online submissions for Number of Good Pairs.
  • Memory Usage: 6.1 MB, less than 78.65% of C online submissions for Number of Good Pairs.
int numIdenticalPairs(int *nums, int numsSize) {
    int good_pairs = 0;
    for (int i = 0; i < numsSize; i++) {
        // Start from the next element.
        for (int j = i + 1; j < numsSize; j++) {
            if (nums[i] == nums[j]) {
                good_pairs += 1;
            }
        }
    }
    return good_pairs;
}

3. Bonus

  • Try to output these pairs follow this format: (i,j),(i,j),(i,j)....
  • Find a python solution which returns a list.