资讯动态

华为题:滑动窗口最大值

发布时间:2026/10/14 5:22:09 来源:尧图企业网站定制
给定一个整数数组nums和一个整数k请找出所有长度为k的滑动窗口中的最大值。输入描述第一行输入一个整数n表示数组长度。第二行输入n个整数表示数组nums。第三行输入一个整数k。输出描述输出每个滑动窗口的最大值用空格分隔。示例 1输入text8 1 3 -1 -3 5 3 6 7 3输出text3 3 5 5 6 7C 解法cpp#include bits/stdc.h using namespace std; int main() { int n; cin n; vectorint nums(n); for (int i 0; i n; i) cin nums[i]; int k; cin k; dequeint dq; vectorint ans; for (int i 0; i n; i) { while (!dq.empty() dq.front() i - k) dq.pop_front(); while (!dq.empty() nums[dq.back()] nums[i]) dq.pop_back(); dq.push_back(i); if (i k - 1) ans.push_back(nums[dq.front()]); } for (int i 0; i (int)ans.size(); i) { if (i) cout ; cout ans[i]; } cout endl; return 0; }

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑