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

滑动窗口的最大值

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

class Solution {
public:
    vector<int> maxInWindows(const vector<int>& num, unsigned int size) {
        vector<int> temp;
        int index[100010];
        int wsize = size;
        if (size == 0 || size > num.size()) return temp;

        int hh = 0, tt = -1;
        for (int i = 0; i < num.size(); i ++)
        {
            if (hh <= tt && i - wsize + 1 > index[hh]) hh ++;
            cout << hh << ' ';
            while (hh <= tt && num[index[tt]] <= num[i]) tt --;
            index[ ++ tt] = i;
		  
            if (i - wsize + 1 >= 0)
            {
                temp.push_back(num[index[hh]]);
            }
        }
        return temp;
    }
};

通过index数组记录下标。index数组队头是最大值,这个下标数组包含了原数组降序排列的下标。所以队头是最大值,当窗口滑出,hh ++,原来第二大的值变成目前窗口内最大值。此时会有新元素加入窗口,因为index是降序,所以队尾是最小的,如果队尾没有新元素大,那么tt--,把它移出,循环会把目前队列中所有不比新元素大的值都移出。因为他们在不在队列里已经没有用了,新元素很大,说明直到窗口从刚框入新元素直到滑出新元素的范围内,新元素一直在,此时最大值一定不会是之前比新元素小的数字。

第一要在开始的时候判断窗口是否需要滑动,第二要在最后判断目前是否构成一个完整的窗口,然后才能输出。

全部评论

相关推荐

找工作勤劳小蜜蜂:自我描述部分太差,完全看不出想从事什么行业什么岗位,也看不出想在哪个地区发展,这样 会让HR很犹豫,从而把你简历否决掉。现在企业都很注重员工稳定性和专注性,特别对于热爱本行业的员工。 你实习的工作又太传统的it开发(老旧),这部分公司已经趋于被淘汰,新兴的互联网服务业,比如物流,电商,新传媒,游戏开发和传统的It开发有天然区别。不是说传统It开发不行,而是就业岗位太少,基本趋于饱和,很多老骨头还能坚持,不需要新血液。 工作区域(比如长三角,珠三角,成渝)等也是HR考虑的因素之一,也是要你有个坚定的决心。否则去几天,人跑了,HR会被用人单位骂死。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 一张图晒出你司的标语 #
4477次浏览 78人参与
# 找AI工作可以去哪些公司? #
10212次浏览 325人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
15786次浏览 230人参与
# 你的实习产出是真实的还是包装的? #
20964次浏览 346人参与
# 从事AI岗需要掌握哪些技术栈? #
9906次浏览 400人参与
# 春招至今,你的战绩如何? #
68165次浏览 603人参与
# 厦门银行科技岗值不值得投 #
8267次浏览 188人参与
# AI面会问哪些问题? #
29257次浏览 641人参与
# 你做过最难的笔试是哪家公司 #
36267次浏览 322人参与
# 中国电信笔试 #
32411次浏览 302人参与
# 金三银四,你的春招进行到哪个阶段了? #
22601次浏览 284人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
341267次浏览 2176人参与
# 同bg的你秋招战况如何? #
212268次浏览 1121人参与
# 哪些公司真双非友好? #
69844次浏览 289人参与
# 如何准备秋招 #
78326次浏览 868人参与
# 阿里笔试 #
179528次浏览 1324人参与
# 应届生被毁约被毁意向了怎么办 #
63364次浏览 305人参与
# 机械人避雷的岗位/公司 #
62728次浏览 393人参与
# 小马智行求职进展汇总 #
25151次浏览 80人参与
# 第一份工作一定要去大厂吗 #
15303次浏览 129人参与
# 担心入职之后被发现很菜怎么办 #
291438次浏览 1210人参与
# 为了减少AI幻觉,你注入过哪些设定? #
26336次浏览 310人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务