C++ | Leetcode C++ Problem Solver for Problem 239 Sliding Window Maximum - Problem Solver:
最编程
2024-07-18 13:41:40
...
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;
}
};
推荐阅读
-
简单 JSON 解析和转储的 C++ 实现
-
微服务开源框架 TARS RPC 源代码初识 TARS C++ 服务器端
-
LeetCode:计算满足 k 约束 I 的子串数量(滑动窗口 Java)
-
C++ 游戏开发:从基础到高级
-
opencv c++ 获取掩码的最大连接域方法
-
C++ 研发笔记 2 - 学习规划概述
-
LeetCode] 动态编程 - 95.动态编程 - 95.不同的二叉搜索树 II(附完整 Python/C++ 代码) - 基本思想
-
LeetCode 问题练习和总结:二叉树的序列化和反序列化 - 297 - 输入:根 = [1,2] 输出: 根[1,2] 提示
-
C++ 中的 Initializer_list 类
-
C++ 中的引用详解