### 239
```c++
class Solution {
public:
vector<int> maxSlidingWindow(vector<int>& nums, int k) {
myQueue qe;
vector<int> res;
for(int i=0;i<k;i++){
qe.push(nums[i]);
}
res.push_back(qe.getMax());
for(int i=k;i<nums.size();i++){
qe.pop(nums[i-k]);
qe.push(nums[i]);
res.push_back(qe.getMax());
}
return res;
}
private:
class myQueue{
public:
deque<int> qe;
void pop(int val){
if(!qe.empty()&&qe.front()==val){
qe.pop_front();
}
}
void push(int val){
while(!qe.empty()&&qe.back()<val){
qe.pop_back();
}
qe.push_back(val);
}
int getMax(){
return qe.front();
}
};
};
```
### 347
```C++
class Solution {
public:
class myCompare{
public:
bool operator()(const pair<int,int>&p1,const pair<int,int>&p2){
return p1.second>p2.second;
}
};
vector<int> topKFrequent(vector<int>& nums, int k) {
unordered_map<int,int> map;
for(int i=0;i<nums.size();i++){
map[nums[i]]++;
}
priority_queue<pair<int,int>,vector<pair<int,int>>,myCompare> pqe;
for(unordered_map<int,int>::iterator it=map.begin();it!=map.end();it++){
pqe.push(*it);
if(pqe.size()>k){
pqe.pop();
}
}
vector<int> res(k);
for(int i=k-1;i>=0;i--){
res[i]=(pqe.top().first);
pqe.pop();
}
return res;
}
};
```
代码随想录day13
最新推荐文章于 2024-07-11 21:13:07 发布