【剑指offer】滑动窗口的最大值

滑动窗口的最大值

https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788?tpId=13&tqId=11217&rp=4&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

  • 当传入的参数是const vector时,使用的迭代器应该也是const_iterator,否则不能把const的变量赋给非const的
  • 使用max_element函数,里面只能是迭代器的范围,不能用数组下标,返回的也是最大值的迭代器,使用*可以获取值
  • 如果想获取最大值的数组下标,可以用max返回的迭代器减去num.begin()即可
class Solution {
public:
    vector<int> maxInWindows(const vector<int>& num, unsigned int size)
    {
        //双指针确定滑动窗口的范围
        //temp保存当前窗口最大值
        vector<int> res;
        if(num.empty() || size > num.size() || size == 0) return res;
        vector<int>:: const_iterator it = num.begin();
        while(it + size <= num.end()){
            int temp = * max_element(it, it + size);
            res.push_back(temp);
            it++;
        }
        return res;
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务