美文网首页
剑指offer-64-栈和队列

剑指offer-64-栈和队列

作者: Buyun0 | 来源:发表于2018-08-14 13:32 被阅读0次

栈和队列

给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个:
{[2,3,4],2,6,2,5,1}, 4
{2,[3,4,2],6,2,5,1}, 4
{2,3,[4,2,6],2,5,1}, 6
{2,3,4,[2,6,2],5,1}, 6
{2,3,4,2,[6,2,5],1}, 6
{2,3,4,2,6,[2,5,1]}。 5

class Solution {
public:
    
    int sum(queue<int> &tt) {//计算给定队列中的最大值
        queue<int> ttt = tt;//务必要复制一个在进行比较,不能再原队列上比较
        int sums = 0;
        while (!ttt.empty()) {
            sums =max( ttt.front(),sums);
            ttt.pop();
        }
        return sums;
    }
    vector<int> maxInWindows(const vector<int>& num, unsigned int size)
    {
        vector<int> nums = num;
        vector<int> f;
        //如果size==0或者size>nums.size,输出0数组.
        if ((nums.size()) <= 0||size == 0||size > nums.size()){
            return f;
        }
        
        
        queue<int> a;//构建队列
        for (int i = 0; i < size; i++) {
            a.push(nums[i]);
        }
        f.push_back(sum(a));
        for (int i = size; i < nums.size(); i++) {
            a.pop();
            a.push(nums[i]);
            f.push_back(sum(a));
        }

        return f;
    }
};

相关文章

  • 剑指offer-64-栈和队列

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

  • 剑指Offer(五)

    剑指Offer(五) 用两个栈实现队列 题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列...

  • 两个栈实现一个队列

    《剑指offer》面试题9:两个栈实现队列 题目:用2个栈实现一个队列,完成队列的push和pop操作 思路:栈1...

  • 《剑指Offer》栈和队列

    1 基本概念 栈:后进先出队列:先进先出 栈和队列是计算中使用最广泛的缓存结构,其使用环境可以总结如下: 计算过程...

  • LeetCode | 面试题09. 用两个栈实现队列【剑指Off

    LeetCode 面试题09. 用两个栈实现队列【剑指Offer】【Easy】【Python】【栈】【队列】 问题...

  • 2019-03-14

    【编程题】 用两个栈实现队列 【剑指系列】用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为...

  • 两个队列实现一个栈

    《剑指offer》面试题9(相关题目):两个队列实现一个栈。 思路:入栈:如果队列1和队列2都为空,则将元素放入队...

  • 剑指offer----队列和栈

    用两个栈实现队列的头部出队,尾部入队操作: 30、包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得...

  • 用两个栈实现队列,用两个队列实现堆栈

    参考:剑指Offer面试题7(Java版):用两个栈实现队列与用两个队列实现栈 用两个栈实现队列stack1作为入...

  • 用两个栈实现队列

    《剑指offer》刷题笔记。如有更好解法,欢迎留言。 关键字:栈 队列 题目描述: 用两个栈来实现一个队列,完成队...

网友评论

      本文标题:剑指offer-64-栈和队列

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