码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 239. 滑动窗口最大值

时间:2018-07-31 17:19:03      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:cto   ack   else   span   deque   ret   ||   ++   empty   

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. 滑动窗口最大值

标签:cto   ack   else   span   deque   ret   ||   ++   empty   

原文地址:https://www.cnblogs.com/randyniu/p/9396178.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!