Distinct Numbers in Each Subarray

给一个数组和一个数字k, 求数组中k大小的subarray的不同的数字的个数.

用map当滑窗计算一下

class Solution {
public:
    vector<int> distinctNumbers(vector<int>& nums, int k) {
        vector<int> res;
        int n = nums.size();
        unordered_map<int, int> map; 
        for(int i = 0; i < n; i++){
            if(i < k){
                map[nums[i]]++;
            }else{
                res.push_back(map.size());
                map[nums[i - k]]--;
                if(map[nums[i - k]] == 0){
                    map.erase(nums[i - k]);
                }
                map[nums[i]]++;
            }
        }
        res.push_back(map.size());
        return res;
    }
};