class Solution { public: int longestSubarray(vector<int>& nums, int limit) { int n=nums.size(); deque<int> maxdq; deque<int> mindq; int right=0; int left=0; int res=1; while(right<n){ while(!maxdq.empty() && nums[right]>nums[maxdq.back()]){ maxdq.pop_back(); } maxdq.push_back(right); while(!mindq.empty() && nums[right]<nums[mindq.back()]){ mindq.pop_back(); } mindq.push_back(right); while(nums[maxdq.front()]-nums[mindq.front()]>limit){ if(maxdq.front()==left) maxdq.pop_front(); if(mindq.front()==left) mindq.pop_front(); ++left; } res=max(res,right-left+1); right++; } return res; } };
LC 1438. Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit
猜你喜欢
转载自www.cnblogs.com/FEIIEF/p/12821521.html
今日推荐
周排行