题解 | #滑动窗口的最大值#

滑动窗口的最大值

https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788

#include <algorithm>
#include <vector>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param num int整型vector 
     * @param size int整型 
     * @return int整型vector
     */
  
    int maxValue(vector<int>& v)// 排序一下,返回最大值
    {
        sort(v.begin(), v.end());
        return v[v.size()-1];
    }
  // 滑窗,关键理解步长即可
    vector<int> maxInWindows(vector<int>& num, int size) {
        // write code here
        vector<int> res;
        if (num.size() < size || size <= 0) {// 注意窗口一定是大于0且不大于容器的
            return res;
        }
        vector<int> tmp;
        for(int i = 0; i < num.size() - size + 1; ++i)
        {
            for(int j = 0; j < size; ++j)//按照步长获取临时数组
            {
                tmp.push_back(num[i + j]);
            }
            res.push_back(maxValue(tmp));// 填充临时数组最大值
            tmp.clear();
        }
        return res;
    }
};

挤挤刷刷! 文章被收录于专栏

记录coding过程

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务