Given an integer array `nums` and an integer `k`, return the number of **good subarrays** of `nums`.
A **good subarray** is a contiguous, non-empty subarray of `nums` with **exactly** `k` different (distinct) integers.
For example, `[1,2,3,1,2]` has 3 different integers: 1, 2, and 3.
Example 1
Input:nums = [1,2,1,2,3], k = 2
Output:7
Explanation:Subarrays with exactly 2 different integers: [1,2], [2,1], [1,2], [2,3], [1,2,1], [2,1,2], [1,2,1,2].
Example 2
Input:nums = [1,2,1,3,4], k = 3
Output:3
Explanation:Subarrays with exactly 3 different integers: [1,2,1,3], [2,1,3], [1,3,4].
Example 3
Input:nums = [1,1,1], k = 1
Output:6
Explanation:Every one of the 6 non-empty subarrays contains exactly 1 distinct integer.