补全:队尾维护

补全 window_max:求最大,要把队尾不比 a[i] 大的都弹掉。补全后输出每个窗口的最大值。 本节模型:window_max / window_min 用 std::deque 存下标做单调队列,求每个长度为 k 的窗口的最值。 (

开始练习 →

补全:队首过期

补全 window_max:队首下标滑出窗口(<= i - k)就出队。补全后输出每个窗口的最大值。 本节模型:window_max / window_min 用 std::deque 存下标做单调队列,求每个长度为 k 的窗口的最值

开始练习 →

补全:什么时候出结果

补全 window_max:凑满 k 个数(i >= k - 1)就该产生一个窗口的结果。补全后输出每个窗口的最大值。 本节模型:window_max / window_min 用 std::deque 存下标做单调队列,求每个长度为

开始练习 →

数组模拟队列要记什么

第 1 步:head、tail 都从 0 开始 第 2 步:q[tail++] = 7:放到队尾 第 3 步:q[tail++] = 5:放到队尾 第 4 步:q[tail++] = 3:放到队尾 第 5 步:head++:丢队首,不挪数据

开始练习 →

数组要开多大

数组模拟单调队列求 n 个数的滑窗最值,数组 q【0】。 本节模型:window_max_arr 不用 std::deque,用数组 q 加 head、tail 两个下标模拟两端操作。

开始练习 →

std::deque 两端操作多快

std::deque 的 push_back、pop_front 这些两端操作,时间复杂度是【0】。

开始练习 →

数组模拟的窗口最大

运行下面这段程序: 本节模型:window_max_arr 不用 std::deque,用数组 q 加 head、tail 两个下标模拟两端操作。 #include <algorithm> #include <deque&

开始练习 →

两种写法结果一致吗

运行下面这段程序: 本节模型:window_max_arr 不用 std::deque,用数组 q 加 head、tail 两个下标模拟两端操作。 #include <algorithm> #include <deque&

开始练习 →

补全:数组版队尾维护

补全 window_max_arr:队尾(q[tail-1])不比 a[i] 大的都弹掉。补全后输出每个窗口的最大值。 本节模型:window_max_arr 不用 std::deque,用数组 q 加 head、tail 两个下标模拟两端

开始练习 →

补全:数组版队首过期

补全 window_max_arr:队首下标滑出窗口就 head++。补全后输出每个窗口的最大值。 本节模型:window_max_arr 不用 std::deque,用数组 q 加 head、tail 两个下标模拟两端操作。 (本题用 g

开始练习 →