题目

        给定一个数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。滑动窗口每次只向右移动一位,你只可以看到在滑动窗口内的k个数字,请返回滑动窗口中的最大值。

        示例:

输入:nums = [1, 3, -1, -3, 5, 3, 6, 7], k = 3
输出:[3, 3, 5, 5, 6, 7]

C++面试宝典第35题:滑动窗口最大值-LMLPHP

解析

        这道题使用暴力求解法比较简单,具体来说,每次窗口移动时,都重新遍历窗口内的所有元素来找到最大值。这种方法虽然直观,但效率较低,尤其是在数组较大且窗口较大的情况下。

#include <iostream>
#include <vector>
using namespace std;

vector<int> GetMaxSlidingWindow(vector<int>& vctNumber, int nWindow)
{
    vector<int> vctResult;
    for (int i = 0; i <= (int)vctNumber.size() - nWindow; ++i)
    {
        int nMax = vctNumber[i];
        for (int j = i + 1; j < i + nW
03-18 11:23