作者DJYOSHITAKA (franchouchouISBEST)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Thu Mar 28 20:40:56 2024
2958. Length of Longest Subarray With at Most K Frequency
用window,同時記錄window內的cnt並更新
當cnt>k時,滑動左邊讓window內的cnt再次符合條件
寫起來跟昨天87%像
int maxSubarrayLength(vector<int>& nums, int k) {
int l=0;
int r=0;
int ans = 0;
unordered_map<int,int> cnt;
for(; r<nums.size(); r++)
{
// update cnt
if(cnt.find(nums[r]) != cnt.end())
{
cnt[nums[r]]++;
}
else
{
cnt[nums[r]] = 1;
}
// check
while(cnt[nums[r]]>k && l<=r)
{
cnt[nums[l]]--;
l++;
}
ans = max(ans, r-l+1);
}
return ans;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.13.190 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1711629659.A.C70.html
推 an94mod0: 大師 03/28 20:41
推 argorok: 大師 03/28 20:41