P93. 滑动窗口中的最大值

leetcode 239 lintcode 362 讨论

温馨提示:您没有权限查看当前视频。 立即购买观看视频

描述

这个题目说的是,给你一个整数数组和整数 k,k 表示滑动窗口的大小,滑动窗口从左向右滑过数组,每移动一个位置,你要计算出当前滑动窗口内 k 个数字的最大值。最后返回这个最大值数组。

比如说,给你的数组是 0, 4, 2, 1, 0, 8, 2,给你的滑动窗口大小 k 等于 3。我们使用大小为 3 的滑动窗口,来找到这个最大值序列。

* 第一个滑动窗口内的数字是 0, 4, 2,最大值为 4
* 移动窗口,窗口内数字变为 4, 2, 1,最大值仍然为 4
* 继续移动窗口,窗口内数字变为 2, 1, 0,最大值变为 2
* 接着移动窗口,窗口内数字变为 1, 0, 8,最大值变为 8
* 继续移动窗口,最后窗口内的数字变为 0, 8, 2,最大值仍然是 8

这时滑动窗口再移动的话,窗口内的数字就不足 k 个,于是结束处理过程。最后就得到了最大值数组 4, 4, 2, 8, 8。

关于 AlgoCasts

AlgoCasts 旨在用心做好每一个算法讲解视频。每个视频包含两个部分:题目的剖析讲解以及编码,力求在讲解清楚到位的基础上,尽可能地保持视频精简短小,让大家可以在碎片时间里进行学习,并收获这些算法题背后的思想与乐趣。