【leetCode】231_滑動窗口最大值

class Solution {
public:
    vector<int> maxSlidingWindow(vector<int>& nums, int k) {
        deque<int> dq;
        vector<int> ans;
        for (int i = 0; i < k; i ++){
            while (! dq.empty() && dq.back() < nums[i]){
                dq.pop_back();
            }
            dq.push_back(nums[i]);
        }
        if (! dq.empty())
            ans.push_back(dq.front());
        for (int i = k; i < nums.size(); i ++){
            while (! dq.empty() && dq.back() < nums[i]){
                dq.pop_back();
            }
            dq.push_back(nums[i]);
            if (dq.front() == nums[i - k])
                dq.pop_front();
            ans.push_back(dq.front());
        }
        return ans;
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章