class Solution {
public:
    vector<int> maxInWindows(const vector<int>& num, unsigned int size)
    {
        vector<int> res;
        auto length = num.size();
        if (size < 1 || size > length) return res;

        // 中间容器初始化
        queue<int> iqu;
        int i = 0;
        while (i != size){
            iqu.push(num[i]);
            ++i;
        }

        while (i != length){
            res.push_back(findqueuemax(iqu));
            iqu.pop();
            iqu.push(num[i]);
            ++i;
        }
        res.push_back(findqueuemax(iqu)); // 少最后一组要补上
        return res;
    }

    int findqueuemax(queue<int> iqu){
        int res = INT_MIN;
        int length = iqu.size();
        for (int i = 0; i != length; ++i){
            if (res < iqu.front())
                res = iqu.front();
            iqu.push(iqu.front());
            iqu.pop();
        }
        return res;
    }
};

1、题目要求在数组上滑动窗口,自然想到中间容器用queue,出队入队完成窗口滑动
2、再一个问题就是找中间容器的max,注意!!!queue不能下标访问!!!
findqueuemax函数对中间queue遍历,寻找max。
欢迎交流指正!!!