Deque - leetcode 【双端队列】
生活随笔
收集整理的這篇文章主要介紹了
Deque - leetcode 【双端队列】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
239. Sliding Window Maximum
//大概思路是用雙向隊列保存數字的下標,遍歷整個數組,如果此時隊列的首元素是i - k的話,表示此時窗口向右移了一步,則移除隊首元素。然后比較隊尾元素和將要進來的值,如果小的話就都移除,然后此時我們把隊首元素加入結果中即可
vector<int> maxSlidingWindow(vector<int>& nums, int k) {
vector<int> res;
deque<int> q;
for(int i = 0; i < nums.size(); i++){
if(!q.empty() && q.front() == i - k) q.pop_front();
while(!q.empty() && nums[q.back()] < nums[i]) q.pop_back();
q.push_back(i);
if(i >= k - 1) res.push_back(nums[q.front()]);
}
return res;
}
轉載于:https://www.cnblogs.com/93scarlett/p/6349040.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Deque - leetcode 【双端队列】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里矢量图标引入方法
- 下一篇: Flutter 2.5正式版发布,带来重