美文网首页
滑动窗口最大值

滑动窗口最大值

作者: const_qiu | 来源:发表于2020-08-29 17:17 被阅读0次

https://leetcode-cn.com/problems/sliding-window-maximum/

class Solution {
public:
    vector<int> maxSlidingWindow(vector<int>& nums, int k) {
        deque<int> q;
        vector<int>  res;
        if(nums.size() ==0 ||k>nums.size()) return res;
        //初始化前第一个窗口
        for (int i = 0; i < k; i++) {
            while (!q.empty()&& nums[i]>nums[q.back()])
            {
                q.pop_back();
            }
            q.push_back(i);
        }
        //初始化前第一个窗口
        res.push_back(nums[q.front()]);
        //开始滑动
        for (int j = k; j < nums.size(); j++) {
            //判断队列中最大值所对应的元素是否在当前窗口里;如果不在当前窗口内就把它移出队列
            if (!q.empty()&&j - q.front() >= k) {
                q.pop_front();
            }
            while (!q.empty()&&nums[j]> nums[q.back()])
            {
                q.pop_back();
            }
            q.push_back(j);
            res.push_back(nums[q.front()]);


        }
        return res;

    }

};



相关文章

  • 队列的最大值

    滑动窗口的最大值给定一个数组和滑动窗口的最大值,找出所有滑动窗口里的最大值。例如输入[2, 3, 4, 2, 6,...

  • 剑指offer | 滑动窗口的最大值

    滑动窗口的最大值 给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值 示例输入:{2, 3, 4, 2, ...

  • 59-滑动窗口最大值、队列的最大值

    1. 滑动窗口的最大值 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 示例:输入:...

  • JZ-064-滑动窗口的最大值

    滑动窗口的最大值 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,...

  • 剑指Offer66题

    1、滑动窗口的最大值 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4...

  • 面试题59(剑指offer)--队列的最大值

    题目一: 滑动窗口的最大值。给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值。例如,如果输入数组{2,3...

  • 剑指Offer Java版 面试题59:队列的最大值

    题目一:滑动窗口的最大值。给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3...

  • 面试题59:队列的最大值

    题目 滑动窗口的最大值给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值。例如,如果输入数组{2,3,4,...

  • 栈和队列

    剑指offer所有的题目总结 牛客 滑动窗口的最大值 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值...

  • 剑指offer 59-1 滑动窗口内的最大值

    给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 使用一个队列记录滑动窗口内的最大值....

网友评论

      本文标题:滑动窗口最大值

      本文链接:https://www.haomeiwen.com/subject/xjljsktx.html