# Smallest Subarray With K Distinct Elements

Easy
0/40
Average time to solve is 20m
Contributed by

## Problem statement

Given an array 'A' consisting of 'N' integers, find the smallest subarray of 'A' containing exactly 'K' distinct integers.

Note :
``````If more than one such contiguous subarrays exist, consider the subarray having the smallest leftmost index.

For example - if A is [1, 2, 2, 3, 1, 3 ] and k = 2 then the subarrays: [1,2], [2,3], [3,1], [1,3] are the smallest subarrays containing 2 distinct elements. In this case, we will consider the starting and ending index of subarray [1,2] i.e. 0 and 1.
``````
Detailed explanation ( Input/output format, Notes, Images )
Constraints :
``````1 <= N, K <= 10^6
-10^5 <= A[i] <= 10^5

Time limit: 1 sec
``````
##### Sample Input 1 :
``````4 3
1 1 2 1 2
``````
##### Sample Output 1 :
``````-1
``````
##### Explanation Of Sample Input 1 :
``````The value of k = 3 and there are only two distinct elements in the given array i.e 2 and 3. Therefore there exist no subarray with 3 distinct elements.
``````
##### Sample Input 2 :
``````8 3
4 2 2 2 3 4 4 3
``````
##### Sample Output 2 :
``````3 5
``````
Console