SOLUTION INFO
C++ · main.cpp
class Solution {
public:
int solve(vector<int> &nums, int k) {
int ret = 0, N = (int)nums.size();
unordered_map<int, int> mp;
for(int i = 0, l = 0; i < N; ++i) {
++ mp[nums[i]];
while(l <= i && mp.size() > k) {
if(-- mp[nums[l]] == 0) mp.erase(nums[l]);
++ l;
}
ret += i - l;
}
return ret;
}
int subarraysWithKDistinct(vector<int>& nums, int k) {
return solve(nums, k) - solve(nums, k - 1);
}
};
SOLUTION DESCRIPTION
풀이 설명
등록된 풀이 설명이 없습니다.