您的位置:首页 > 其它

Leetcode 239. 滑动窗口最大值

2018-07-31 15:37 344 查看
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;
}
};

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: