LeetCode in Kotlin

2475. Number of Unequal Triplets in Array

Easy

You are given a 0-indexed array of positive integers nums. Find the number of triplets (i, j, k) that meet the following conditions:

Return the number of triplets that meet the conditions.

Example 1:

Input: nums = [4,4,2,4,3]

Output: 3

Explanation: The following triplets meet the conditions:

Example 2:

Input: nums = [1,1,1,1,1]

Output: 0

Explanation: No triplets meet the conditions so we return 0.

Constraints:

Solution

class Solution {
    fun unequalTriplets(nums: IntArray): Int {
        var trips = 0
        var pairs = 0
        val count = IntArray(1001)
        for (i in nums.indices) {
            trips += pairs - count[nums[i]] * (i - count[nums[i]])
            pairs += i - count[nums[i]]
            count[nums[i]] += 1
        }
        return trips
    }
}