Count Complete Subarrays in an Array

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
class Solution:
    def countCompleteSubarrays(self, nums: List[int]) -> int:
        n = len(nums)
        k = len(set(nums))
        result = 0
        i = 0
        count = Counter()
        for j in range(n):
            count[nums[j]] += 1
            while len(count) == k:
                count[nums[i]] -= 1
                if count[nums[i]] == 0:
                    del count[nums[i]]
                i += 1
            result += i
        return result