LeetCode 1534. Count Good Triplets Solution in Java, C++, Python & More | Explanation + Code

CoderIndeed
0
1534. Count Good Triplets

Description

Given an array of integers arr, and three integers ab and c. You need to find the number of good triplets.

A triplet (arr[i], arr[j], arr[k]) is good if the following conditions are true:

    <li><code>0 &lt;= i &lt; j &lt; k &lt;&nbsp;arr.length</code></li>
    
    <li><code>|arr[i] - arr[j]| &lt;= a</code></li>
    
    <li><code>|arr[j] - arr[k]| &lt;= b</code></li>
    
    <li><code>|arr[i] - arr[k]| &lt;= c</code></li>
    

Where |x| denotes the absolute value of x.

Return the number of good triplets.

 

Example 1:


Input: arr = [3,0,1,1,9,7], a = 7, b = 2, c = 3

Output: 4

Explanation: There are 4 good triplets: [(3,0,1), (3,0,1), (3,1,1), (0,1,1)].

Example 2:


Input: arr = [1,1,2,2,3], a = 0, b = 0, c = 1

Output: 0

Explanation: No triplet satisfies all conditions.

 

Constraints:

    <li><code>3 &lt;= arr.length &lt;= 100</code></li>
    
    <li><code>0 &lt;= arr[i] &lt;= 1000</code></li>
    
    <li><code>0 &lt;= a, b, c &lt;= 1000</code></li>
    

Solutions

Solution 1: Enumeration

We can enumerate all i, j, and k where i \lt j \lt k, and check if they simultaneously satisfy |arr[i] - arr[j]| \le a, |arr[j] - arr[k]| \le b, and |arr[i] - arr[k]| \le c. If they do, we increment the answer by one.

After enumerating all possible triplets, we get the answer.

The time complexity is O(n3), where n is the length of the array arr. The space complexity is O(1).

PythonJavaC++GoTypeScriptRustC#
class Solution: def countGoodTriplets(self, arr: List[int], a: int, b: int, c: int) -> int: ans, n = 0, len(arr) for i in range(n): for j in range(i + 1, n): for k in range(j + 1, n): ans += ( abs(arr[i] - arr[j]) <= a and abs(arr[j] - arr[k]) <= b and abs(arr[i] - arr[k]) <= c ) return ans(code-box)

Post a Comment

0Comments

Post a Comment (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Accept !