Leetcode 239. 滑动窗口最大值

Posted randyniu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 239. 滑动窗口最大值相关的知识,希望对你有一定的参考价值。

class Solution {
public:
    vector<int> maxSlidingWindow(vector<int>& nums, int k) {
        vector<int> ret;
        if(nums.size()==0)
            return ret;
        
        deque<int> q;
        
        for(int i=0; i<nums.size(); ++i)
        {
            if(q.empty() || nums[q.back()] > nums[i] )
            {
                q.push_back(i);
            }
            else
            {
                q.pop_back();
                while(!q.empty() && nums[q.back()] <= nums[i] )
                {
                    q.pop_back();
                }
                q.push_back(i);
            }
            
            //减数逻辑
            if(i-k+1 > q.front())
            {
                q.pop_front();
            }
            
            if(i>=k-1)
            {
                ret.push_back(nums[q.front()]);
            }
            
        }
        return ret;
    }
};

 

以上是关于Leetcode 239. 滑动窗口最大值的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 239.滑动窗口最大值

LeetCode 239. 滑动窗口最大值

LeetCode #239 滑动窗口最大值

leetcode 239. 滑动窗口最大值(单调队列)

leetcode 239 滑动窗口最大值

leetcode 239. 滑动窗口最大值