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;
    }
};
相关推荐
ThE.wHIte.2 分钟前
leetcode 3068. 最大节点价值之和
算法·leetcode·职场和发展
鸡鸭扣8 分钟前
leetcode hot100:十四、解题思路大全:真·大全!
数据结构·python·算法·leetcode·力扣·笔试
kyle~14 分钟前
C/C++---隐式显式转换
c语言·开发语言·c++
四谷夕雨17 分钟前
C++八股 —— 手撕定时器
开发语言·c++
四谷夕雨1 小时前
C++八股 —— 手撕shared_ptr
开发语言·c++
十五年专注C++开发2 小时前
CMake指令:add_library()
开发语言·c++·cmake·自动化编译工具
无垠的广袤3 小时前
【萤火工场GD32VW553-IOT开发板】ADC电压的LabVIEW采集
c++·单片机·嵌入式硬件·物联网·labview
十五年专注C++开发3 小时前
CMake基础:CMakeLists.txt 文件结构和语法
开发语言·c++·cmake·跨平台编译
hjjdebug3 小时前
std::initialzer_list 与花括号{}数据列表
c++·initializer·数据列表·花括号数据列表·类型参数可变·参数个数可变
虾球xz3 小时前
游戏引擎学习第309天:用于重叠检测的网格划分
c++·学习·算法·游戏引擎