classSolution{public:vector<int>maxSlidingWindow(vector<int>&nums,intk){vector<int>ans;deque<int>q;// Max queuefor(inti=0;i<nums.size();++i){while(!q.empty()&&q.back()<nums[i])q.pop_back();q.push_back(nums[i]);if(i>=k&&nums[i-k]==q.front())// Out of boundq.pop_front();if(i>=k-1)ans.push_back(q.front());}returnans;}};
classSolution{publicint[]maxSlidingWindow(int[]nums,intk){int[]ans=newint[nums.length-k+1];Deque<Integer>q=newArrayDeque<>();// Max queuefor(inti=0;i<nums.length;++i){while(!q.isEmpty()&&q.peekLast()<nums[i])q.pollLast();q.offerLast(nums[i]);if(i>=k&&nums[i-k]==q.peekFirst())// Out of boundq.pollFirst();if(i>=k-1)ans[i-k+1]=q.peekFirst();}returnans;}}
classSolution:defmaxSlidingWindow(self,nums:List[int],k:int)->List[int]:ans=[]q=deque()# Max queuefori,numinenumerate(nums):whileqandq[-1]<num:q.pop()q.append(num)ifi>=kandnums[i-k]==q[0]:# Out of boundq.popleft()ifi>=k-1:ans.append(q[0])returnans