1. 用堆的方法,和暴力的方法都可以。

  2. 关键对的解法看注释。

    class Solution {
    public:
     vector<int> maxInWindows(const vector<int>& num, unsigned int size) {
         vector<int> res;
         if(num.size()<size){
             return res;
         }
    
         priority_queue<pair<int,int>> que;// 将元素和对应下标(会自动按照pair的第一个元素)
         int index = 0;//可以看作是窗口第一个元素的index(滑动窗口的左端点)
         for(int i =0; i< num.size(); i++){
             que.push({num[i],i});// 将元素和对应下标入堆
    
             if(i>=size-1){//之后满堆的时候,以此来维持一个类似的滑动窗口的概念
                 while(que.size()&&que.top().second<index){ // 若此时堆顶元素不在窗口内
                     que.pop();    // 弹出堆顶
                 }
    
                 res.push_back(que.top().first);
                 index++;
             }
    
    
    }


    return res;
}

};
```