面试题59 - I. 滑动窗口的最大值
Posted ocpc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题59 - I. 滑动窗口的最大值相关的知识,希望对你有一定的参考价值。
题目:
解答:
1 class Solution { 2 public: 3 vector<int> maxSlidingWindow(vector<int>& nums, int k) 4 { 5 if(nums.size() == 0 || k == 1) 6 { 7 return nums; 8 } 9 10 priority_queue<int> q; 11 map<int, int> maps; 12 vector<int> res; 13 14 int i; 15 for(i = 0; i < k; i++) 16 { 17 q.push(nums[i]); 18 } 19 20 while(true) 21 { 22 res.push_back(q.top()); 23 if(i == nums.size()) 24 { 25 break; 26 } 27 28 int add = nums[i]; 29 int del = nums[i - k]; 30 q.push(add); 31 maps[del]++; 32 i++; 33 34 while(!q.empty() && maps[q.top()] > 0) 35 { 36 maps[q.top()]--; 37 q.pop(); 38 } 39 } 40 return res; 41 } 42 };
以上是关于面试题59 - I. 滑动窗口的最大值的主要内容,如果未能解决你的问题,请参考以下文章
剑指 Offer 59 - I. 滑动窗口的最大值 c++/java详细题解
剑指 Offer 59 - I. 滑动窗口的最大值 c++/java详细题解