标签:一个 nbsp res sign 顺序 color pre style win
队头永远存的大数,队尾是小数,一旦出现比队尾大的数,则弹出队尾,将大数压入,使从大到小的顺序不变
1 class Solution { 2 public: 3 vector<int> maxInWindows(const vector<int>& num, unsigned int size) { 4 if (num.size() == 0 || size <= 0 || size > num.size())return {}; 5 vector<int>res; 6 deque<int>List; 7 int L = 0, R = 0; 8 while (R < num.size()) { 9 while (!List.empty() && num[List.back()] < num[R])List.pop_back(); 10 List.push_back(R); 11 ++R; 12 if (R < size)continue; 13 if (R == size)res.push_back(num[List.front()]);//第一个窗口 14 else {//其他窗口 15 if (List.front() == L)List.pop_front();//最大数就是去除的左数,则删除该数 16 ++L; 17 res.push_back(num[List.front()]); 18 } 19 } 20 return res; 21 } 22 };
标签:一个 nbsp res sign 顺序 color pre style win
原文地址:https://www.cnblogs.com/zzw1024/p/11708695.html