C++ | Leetcode C++题解之第239题滑动窗口最大值

题目:

题解:

cpp 复制代码
class Solution {
public:
    vector<int> maxSlidingWindow(vector<int>& nums, int k) {
        int n = nums.size();
        vector<int> prefixMax(n), suffixMax(n);
        for (int i = 0; i < n; ++i) {
            if (i % k == 0) {
                prefixMax[i] = nums[i];
            }
            else {
                prefixMax[i] = max(prefixMax[i - 1], nums[i]);
            }
        }
        for (int i = n - 1; i >= 0; --i) {
            if (i == n - 1 || (i + 1) % k == 0) {
                suffixMax[i] = nums[i];
            }
            else {
                suffixMax[i] = max(suffixMax[i + 1], nums[i]);
            }
        }

        vector<int> ans;
        for (int i = 0; i <= n - k; ++i) {
            ans.push_back(max(suffixMax[i], prefixMax[i + k - 1]));
        }
        return ans;
    }
};
相关推荐
想想吴17 分钟前
10. 引用计数
c++·引用计数
yolo_guo19 分钟前
opencv 学习: 04 通过ROI处理图片局部数据,以添加水印为例
linux·c++·opencv
顺顺 尼1 小时前
模板进阶和array
c++
一匹电信狗1 小时前
【牛客CM11】链表分割
c语言·开发语言·数据结构·c++·算法·leetcode·stl
困鲲鲲1 小时前
ROS2系列 (10) : C++话题通信节点——发布者示例
c++·ros2
..过云雨1 小时前
11.【Linux系统编程】文件系统详解——从磁盘硬件到文件系统
linux·c++·后端·缓存
码住懒羊羊2 小时前
【C++】模板进阶 | 继承
android·java·c++
yong99902 小时前
C++语法—类的声明和定义
开发语言·c++·算法
狂奔的sherry2 小时前
构造/析构/赋值运算理解
开发语言·c++
大佬,救命!!!2 小时前
C++多线程运行整理
开发语言·c++·算法·学习笔记·多线程·新手练习