zoukankan      html  css  js  c++  java
  • 【leetcode 239. 滑动窗口最大值】解题报告

    思路:滑动窗口的思想,只要是求连续子序列或者子串问题,都可用滑动窗口的思想

    方法一:

        vector<int> maxSlidingWindow(vector<int>& nums, int k) {
            vector<int> res;
            if (nums.size()==0) return res;
            int i=0;
            deque<int> dq;  
            for (i=0;i<nums.size();++i)
            {
                while(!dq.empty()&&nums[i]>nums[dq.back()]) //在尾部添加元素,并保证左边元素都比尾部大
                    dq.pop_back();
                dq.push_back(i);
                if (i-k==dq.front())    //在头部移除元素
                    dq.pop_front();
                if (i>=k-1)
                    res.push_back(nums[dq.front()]);    // 存放每次窗口内的最大值
            }
            return res;
        }
  • 相关阅读:
    @codeforces
    @codeforces
    @hdu
    @hdu
    @bzoj
    @bzoj
    @topcoder
    推荐系统主题相关资料
    Python统计百分比及排序
    如何发布及部署asp.net网站
  • 原文地址:https://www.cnblogs.com/brianyi/p/10804395.html
Copyright © 2011-2022 走看看