zoukankan      html  css  js  c++  java
  • 239. [LeetCode ]Sliding Window Maximum

    Given an array nums, there is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each time the sliding window moves right by one position. Return the max sliding window.

    Example:

    Input: nums = [1,3,-1,-3,5,3,6,7], and k = 3
    Output: [3,3,5,5,6,7] 
    Explanation: 
    
    Window position                Max
    ---------------               -----
    [1  3  -1] -3  5  3  6  7       3
     1 [3  -1  -3] 5  3  6  7       3
     1  3 [-1  -3  5] 3  6  7       5
     1  3  -1 [-3  5  3] 6  7       5
     1  3  -1  -3 [5  3  6] 7       6
     1  3  -1  -3  5 [3  6  7]      7






    #include <cstdio>
    #include <vector>
    #include<deque> 
    #include<iostream>
    using namespace std;
    
    class Solution {
    public:
        vector<int> maxSlidingWindow(vector<int>& nums, int k) {
            deque<int> buffer;
            vector<int> res;
    
            for(int i=0; i<nums.size();++i)
            {
                while(!buffer.empty() && nums[i]>=nums[buffer.back()]) buffer.pop_back();
                buffer.push_back(i);
    
                if(i>=k-1) res.push_back(nums[buffer.front()]);
                if(buffer.front()<= i-k + 1) buffer.pop_front();
            }
            return res;
        }
    };
    int main(){
        Solution test;
        vector<int> aa;
        aa.push_back(19);
        aa.push_back(-5);
        aa.push_back(2);
        aa.push_back(7);
        aa.push_back(6);
        aa.push_back(7);
        aa.push_back(5);
        aa.push_back(9);
        test.maxSlidingWindow(aa,3);
        return 0;
    }
  • 相关阅读:
    批量删除.svn文件夹、.svn文件
    Windows 7下Git SSH 创建Key的步骤
    Git:本地项目与远程仓库的git/clone
    git解决二进制文件冲突
    git设置mergetool可视化工具
    redhat7.2配置yum源
    project2016安装与破解
    strace 使用案例
    运维老鸟教你安装centos6.5如何选择安装包
    CSS限制
  • 原文地址:https://www.cnblogs.com/250101249-sxy/p/10429311.html
Copyright © 2011-2022 走看看