uacs2024

导航

leetcode 2958. 最多 K 个重复元素的最长子数组

2958. 最多 K 个重复元素的最长子数组

class Solution {
public:
    int maxSubarrayLength(vector<int>& nums, int k) {
        int size = nums.size(),resLenth = 0;
        unordered_map<int,int> numAdded;
        for(int left = 0,right = 0;right < size;++right){
            ++numAdded[nums[right]];
            if(numAdded[nums[right]] > k){
                while(numAdded[nums[right]] > k)  --numAdded[nums[left++]];//没必要值为1就erase,题目的求解和numAdded.size()没有任何关系
            }
            resLenth = max(resLenth,right-left+1);
        }
        return resLenth;
    }
};

 

posted on 2024-12-10 15:14  ᶜʸᵃⁿ  阅读(10)  评论(0)    收藏  举报