首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
首页 /
include <vector>
#
include <vector>
#
65次浏览
1人互动
收藏话题
分享
此刻你想和大家分享什么
热门
最新
昨天 19:48
南昌大学 算法工程师
滑动窗口的最大值
这道题要求找出数组中每个大小为size的滑动窗口内的最大值。我们可以通过暴力遍历每个窗口并直接查找最大值的方式解决。首先处理特殊情况:若窗口大小size为 0,直接返回空数组。对于有效窗口,外层循环遍历所有可能的窗口起始位置(共num.size()-size+1个窗口),内层循环逐个比较窗口内的元素,记录每个窗口的最大值。最后将所有窗口的最大值收集到结果数组中返回。以下是对应的实现代码:include <queue>using namespace std;class Solution {public:vector<int> maxInWindows(vector<int>& num, int size) {vector<int> ans;// 处理窗口大小为0的特殊情况if (size == 0) return ans;queue<int> nums;// 遍历所有滑动窗口的起始位置for (int i = 0; i < num.size() - size + 1; i++) {int max = 0;// 遍历当前窗口内的元素,找到最大值for (int j = i; j < i + size; j++) {if (num[j] > max) max = num[j];}nums.push(max);}// 将队列中的最大值转移到结果数组while (!nums.empty()) {ans.push_back(nums.front());nums.pop();}return ans;}};该代码的时间复杂度为O(n×size),空间复杂度为O(n)。
点赞
评论
收藏
分享
玩命加载中
创作者周榜
更多
热议话题
更多
1
...
你的秋招白月光和意难平公司
0
2
...
机械人晒出你的简历
0
3
...
你想跟着什么样领导?
0
4
...
比亚迪求职进展汇总
0
5
...
十一月总结
0
6
...
职场上哪些事情令人讨厌
0
7
...
深信服求职进展汇总
0
8
...
如果今天是你的last day,你会怎么度过?
0
9
...
考研失败就一定是坏事吗?
0
10
...
机械人还在等华为开奖吗?
0
牛客网
牛客网在线编程
牛客网题解
牛客企业服务