fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int distinctSubArray(vector<int> &arr, int k){
  5.  
  6. int count = 0,sum = 0;
  7.  
  8. unordered_map<int, int> freq;
  9. for (int i = 0, j = 0; j < arr.size(); j++){
  10.  
  11. freq[arr[j]]++;
  12. int d = freq.size();
  13.  
  14. while (d > k){
  15. freq[arr[i]]--;
  16. if(freq[arr[i]] == 0){
  17. freq.erase(arr[i]);
  18. }
  19. i++;
  20. d = freq.size();
  21. }
  22.  
  23. count += (j-i+1);
  24.  
  25. }
  26.  
  27. return count;
  28. }
  29.  
  30. int main() {
  31. // your code goes here
  32. vector<int> arr = {1, 2, 2};
  33. cout << distinctSubArray(arr, 2);
  34. return 0;
  35. }
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
6