当前位置: 首页 > news >正文

reLeetCode 热题 100- 239. 滑动窗口最大值 队列 - MKT

 

 

image

 队列记录最大值集合

方法一1 枚举 速度嘛 n*k

 

方法2 map 记录频次 通过速度慢

 

方法3 队列记录当前最大值 最快

 

image

 

class Solution {
public:vector<int> maxSlidingWindow(vector<int>& nums, int k) {vector<int> result; if(nums.size()==0 || k==0){return result;    }deque<int> result_index; // 4 3 1      4 2 3-> 4 2-> 4 3for(int i=0;i<k;i++){while(!result_index.empty() && nums[i]>nums[result_index.back()]){result_index.pop_back();}result_index.push_back(i);}result.push_back(nums[result_index.front()]);for(auto p:result_index){cout<< nums[p]<< " " ;}cout<< endl ;for(int i=k;i<nums.size();i++){// 抛弃上一个数据 如果上一个数据刚好是最大的if(!result_index.empty() && result_index.front()==i-k){result_index.pop_front();}// 5 3 4  - 5 4while(!result_index.empty() && nums[i]>nums[result_index.back()]){result_index.pop_back();}result_index.push_back(i);result.push_back(nums[result_index.front()]);for(auto p:result_index){cout<< nums[p]<< " " ;}cout<< endl ;}return result;  }
};

  队列 k=3 

 5 4 3 (4)-》剔除 小于当前值  5 4 剔除目前最大的索引为n-k  4 ,插入 4 4 最大 4

每次剔除确保了队列里前面都是比自己大的,队列保持递减顺序 

 

http://www.rkmt.cn/news/17404.html

相关文章:

  • 深入解析:三维坐标转换
  • Wails + Go + React跨平台RTSP播放器分享
  • 【A】Strategy above the depths
  • 完整教程:Python 训练营打卡 Day 43
  • 塑料回收技术创新与可持续发展
  • 共享掩码:TFHE在打包消息上的自举技术
  • 打印
  • JDK的安装与使用 - XYX
  • LeetCode热题100-74题、数据流的中位数
  • 兼论spatial和simulink,PTX及其他
  • 网课一
  • HTML 速查列表 - 教程
  • 学习问题日记-4
  • Codeforces Round 1042 (CF2131) 补题笔记(A-E)
  • 2025.10.8
  • 【QT】QString 与QString区别 - 教程
  • 连通分量tarjan学习笔记
  • 2025国庆集训总结
  • 深入解析:【QT】`QTextCursor::insertText()`中插入彩色文本
  • Java方法专题 - 动手动脑问题与实验总结
  • 学习问题日记-3
  • 差分约束乘法改加减
  • 深入解析:Python应用函数的定义与调用(一)
  • AI元人文:共识锚定与智慧剪枝——构建人机共生认知经济体的完善理论体系与实践路径
  • 羊蹄
  • 出题系统
  • 【基础】 - ACPI是什么?
  • 方法作业
  • 2025 汽车改装公司最新推荐榜:一站式服务生态企业盘点,含奔驰宝马新能源改装及新锐品牌权威测评重庆宝马汽车改装/重庆新能源汽车改装/重庆汽车改装贴膜/重庆汽车改装轮毂刹车公司推荐
  • 用低成本FPGA实现FSMC接口的多串口(UART)控制器