行业知识
Day13 LeetCode 239、347
2026-11-01 12:15:14
来源:互联网转载
今日内容:
()- ��239. 滑动窗口最大值
- 347.前 K 个高频元素
- 总结
239. 滑动窗口最大值 (一刷至少需要理解思路)
()队列的应用
使用双端队列,构建单调递减队列,队首元素为最大值,自定义数据结构
class Solution {private: class Myqueue{ public: deque que;//双端队列 void pop(int val){ if(!que.empty() && val == que.front()){ que.pop_front(); } } void push(int val){ while(!que.empty() && val > que.back()){ que.pop_back(); } que.push_back(val); } int getMax(){ return que.front(); } };public: vector maxSlidingWindow(vector& nums, int k) { Myqueue que; vector result; for(int i = 0; i题目链接/文章讲解/视频讲解:代码随想录
347.前 K 个高频元素 (一刷至少需要理解思路)
大/小顶堆的应用, 在C++中就是优先级队列 ,在优先级队列中保存map数组,以value值作为排序比较数值。
class Solution {public: //重写比较逻辑 class greater{ public: bool operator()(const pair& key1,const pair& key2){ return key1.second > key2.second; } }; vector topKFrequent(vector& nums, int k) { //统计元素出现频率 unordered_map map;//键值对形式 key:nums[i] value:出现频率 for(int i = 0; i k){ pri_que.pop(); } } //保存频率前k高的元素 vector result(k); for(int i = k - 1; i >= 0; i--){ result[i] = pri_que.top().first; pri_que.pop(); } return result; }};题目链接/文章讲解/视频讲解:代码随想录
总结
栈与队列
代码随想录
- 总结
- 347.前 K 个高频元素
下一篇:服务器类型怎么选择?