Leetcdoe-Day20-代码随想录-栈与队列-239-347

昨天 1090阅读

239. 滑动窗口最大值

题目链接

class MyQueue {
public:
    deque que;
    void pop(int value) {
        if(!que.empty()&&que.front()==value){
            que.pop_front();
        }
    }
    void push(int value) {
        while(!que.empty()&&value>que.back()){
            que.pop_back();
        }
        que.push_back(value);
    }
    int front() {
        return que.front();
    }
};
class Solution {
public:
    vector maxSlidingWindow(vector& nums, int k) {
        MyQueue que;
        vector result;
        for(int i=0;i
            que.push(nums[i]);
        }
        result.push_back(que.front());
        for(int i=k;i
            que.pop(nums[i-k]);
            que.push(nums[i]);
            result.push_back(que.front());
        }
        return result;
    }
};

public:
    // 小顶堆
    class mycomparison {
    public:
        bool operator()(const pair
            return left.secondright.second;//小顶堆左大于右
            }
    };
    vector topKFrequent(vector& nums, int k){
        unordered_map map;
        for(int i=0;i
            map[nums[i]]++;
        }
        priority_queue//注意迭代器的语法
            que.push(*it);
            if(que.size()k){
                que.pop();
            }
        }
        vector result;
        for(int i=0;i
            result.push_back(que.top().first);//priority队列的函数有哪些
            que.pop();
        }
        return result;
    }

Leetcdoe-Day20-代码随想录-栈与队列-239-347

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]