#1461. 初赛题目-完善16
初赛题目-完善16
当前没有测试数据。
阅读程序2
1 #include <bits/stdc++.h>
2 using namespace std;
3
4 int const MAXN = 1000001;
5 int q2[MAXN];
6 int a[MAXN];
7 int n, m;
8
9 int max_deque() {
10 int h = 1, t = 0;
11 for(int i = 1; i <= n; i++) {
12 while(h <= t && q2[h] + m <= i) h++;
13 while(h <= t && a[q2[t]] < a[i]) t--;
14 q2[++t] = i;
15 if(i >= m) cout << a[q2[h]] << " ";
16 }
17 }
18
19 int main() {
20 cin >> n >> m;
21 for(int i = 1; i <= n; i++) {
22 scanf("%d", &a[i]);
23 }
24 max_deque();
25 return 0;
26 }
判断题
程序的时间复杂度是 O(n)。( )
A. 正确
B. 错误
在程序中,h 和 t 可以看作是一个队列的尾部和头部。( )
A. 正确
B. 错误
如果输入的数组是单调递增的,那么程序在执行11行循环时,每循环一次,数组q2中的元素就会多增加一个。( )
A. 正确
B. 错误
单选题
对于输入数组[1,2,3,4,5,6,7],m的值为3,程序中数组q2的最大的有效长度是多少?
A. 1
B. 3
C. 4
D. 5
对于输入数组 [1, 3, -1, -3, 5, 3, 6, 7] ,m的值为3,程序的输出将为( )
A. 1 3 3 3 5 5 6 7
B. 3 3 5 5 6 7
C. 3 3 3 5 5 6 7
D. 3 3 5 5 6 7
对于长度为 10 的数组,m的值为 4,在最坏情况下,程序中数组 q2 的最大有效长度是多少?
A. 2
B. 3
C. 4
D. 5