Post

2277 Count Equal And Divisible Pairs In An Array

2277 Count Equal And Divisible Pairs In An Array

Count Equal and Divisible Pairs in an Array imageGiven a 0-indexed integer array nums of length n and an integer k, return the number of pairs (i, j) where 0 <= i < j < n, such that nums[i] == nums[j] and (i * j) is divisible by k.

 

Example 1:

1
2
3
4
5
6
7
8
9
10
**Input:** nums = [3,1,2,2,2,1,3], k = 2
**Output:** 4
**Explanation:**
There are 4 pairs that meet all the requirements:
- nums[0] == nums[6], and 0 * 6 == 0, which is divisible by 2.
- nums[2] == nums[3], and 2 * 3 == 6, which is divisible by 2.
- nums[2] == nums[4], and 2 * 4 == 8, which is divisible by 2.
- nums[3] == nums[4], and 3 * 4 == 12, which is divisible by 2.

Example 2:

1
2
3
4
5
**Input:** nums = [1,2,3,4], k = 1
**Output:** 0
**Explanation:** Since no value in nums is repeated, there are no pairs (i,j) that meet all the requirements.

 

Constraints:

1
2
1 <= nums.length <= 100
1 <= nums[i], k <= 100
1
2
3
4
5
6
7
8
9
10
11
12
13
14

class Solution:
    def countPairs(self, nums: List[int], k: int) -> int:
        n = len(nums)
        res = 0  # number of pairs meeting the requirements
        for i in range(n - 1):
            for j in range(i + 1, n):
                if (i * j) % k == 0 and nums[i] == nums[j]:
                    res += 1
        return res



This post is licensed under CC BY 4.0 by the author.