Idea: esta
pregunta es una pregunta típica para ventanas deslizantes. El punto de conocimiento utilizado es la cola monótona (no olvide el punto de conocimiento de la pila monótona). El valor de la ventana se mantiene a través de la cola de dos extremos para garantizar que el encabezado elemento de la ventana está en este intervalo El mejor valor puede ser.
Código:
class Solution {
public:
vector<int> maxSlidingWindow(vector<int>& nums, int k) {
deque<int> dq;
vector<int> ans;
for(int i=0;i<nums.size();++i){
if(!dq.empty() && i-dq.front() >= k) dq.pop_front();
while(!dq.empty() && nums[dq.back()]<=nums[i]){
dq.pop_back();
}
dq.push_back(i);
if(i>=k-1) ans.push_back(nums[dq.front()]);
}
return ans;
}
};