题解 | #滑动窗口的最大值#
滑动窗口的最大值
https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788
#include <algorithm> #include <climits> #include <functional> #include <queue> #include <vector> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型vector * @param size int整型 * @return int整型vector */ vector<int> maxInWindows(vector<int>& num, int size) { // write code here if (num.size() < size || num.size() == 0 || size == 0) return {}; vector<int> ans; int res = INT_MIN; for (int i = size; i <= num.size(); ++i) { // res = max(res, num[i]); res = *max_element(num.begin() + i - size, num.begin() + i); ans.push_back(res); } return ans; } };
这时间复杂度O(N),这个题感觉挺巧的。许多人可能受到时间的复杂度的影响。其实当size = 1时,复杂度为O(N),size = num.size()时,复杂度为log(N),最差不会出现模糊的O(N*N)或者O(N^N)
#悬赏#