无锡住房和城乡建设部网站,英文网站建设注意事项,什么网站可以做视频剪辑的兼职,垂直性门户网站有哪些今天本来应该写两道题把这一章节结束掉#xff0c;奈何第二题前k个高频元素需要用的二叉树相关代码实在不会写#xff08;倒是能看懂#xff09;等我学完二叉树再把这道题亲自写一遍吧
今天工作量比较小#xff0c;准备从第一天的任务开始把题目重新再做一遍
239. 滑动窗…今天本来应该写两道题把这一章节结束掉奈何第二题前k个高频元素需要用的二叉树相关代码实在不会写倒是能看懂等我学完二叉树再把这道题亲自写一遍吧
今天工作量比较小准备从第一天的任务开始把题目重新再做一遍
239. 滑动窗口最大值 - 力扣LeetCode
class Solution {private:class MyQueue{public:dequeint que;void pop(int value){if(!que.empty()que.front()value){que.pop_front();}}void push(int value){while(!que.empty()valueque.back()){que.pop_back();}que.push_back(value);}int front(){return que.front();}};
public:vectorint maxSlidingWindow(vectorint nums, int k) {MyQueue que;vectorintresult;for(int i0;ik;i){que.push(nums[i]);}result.push_back(que.front());for(int ik;inums.size();i){que.pop(nums[i-k]);que.push(nums[i]);result.push_back(que.front());}return result;}
};
主要思路
1.如果push进来的元素比队尾的元素大则弹出队尾元素直到队列最后一个数大于该元素从而保持单调队列里的单调递减。
2.当窗口要移除的元素等于队头的元素时pop出去当前队首的元素使得队列中当前最大的数不会一直存在
今天把数组篇章的题全部重做了一遍出乎意料的是没有一道题是一次性写对的总是错一些细节性的地方关于双指针的理解更是忘得一塌糊涂不敢想后面的篇章还记得多少。。。果然做过的题要时常温习我感觉这次重做后对知识点的理解又深入了一层即便第一次做的时候我已经感到自己理解的很透彻了最后代码一定要多写最好一次性写完中间不看答案只有自己写出来才能知道哪些地方理解不到位哪些细节没有考虑到。最后明天重做链表章节题目以后在正常学习计划之外每天复习一章节过完一轮再过一轮直到题目可以一次性写对为止