该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
阅读程序(12分)
根据以上程序代码,完成下面的判断题和选择题。
判断题
- 第 1 行把万能头文件
#include<bits/stdc++.h>
修改为#include<iostream>
程序不能正常运行。(){{ select(1) }}
- 第 12 行可以把
!st.empty()
修改为st.size()
。( ){{ select(2) }}
- 数组 r 中存储的是每个位置右边第一个比它小的数的下标。( ) {{ select(3) }}
- 如果输入的数组 a 单调递减,则程序输出结果全为 0。( ) {{ select(4) }}
选择题
- 输入为"8"和"2 5 6 2 1 7 1 1"时,输出为( )。{{ select(5) }}
- “1 1 3 2 1 0 1 0”
- “1 1 3 2 1 0 0 0”
- “3 2 1 1 2 1 1 0”
- “4 2 1 1 0 1 0 0”
- 程序的时间复杂度为()。{{ select(6) }}
- O(logn)
- O(n)
- O(nlogn)
- O(n2)
完善程序(15分)
有一个长为 n 的序列 a,以及一个大小为 k 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值。
- ① 处应填( ){{ select(7) }}
- a[i−k+1]!=0
- dq.back()==a[i−k+1]
- dq.back()>=a[i−k+1]
- dq.front()==a[i−k]
- ② 处应填( ){{ select(8) }}
- dq.push_back(a[i])
- dq.pop_front()
- dq.push_front(a[i])
- dq.pop_back()
- ③ 处应填( ){{ select(9) }}
- a[i]>dq.front()
- a[i]<dq.front()
- a[i]>dq.back()
- a[i]<dq.back()
- ④ 处应填( ){{ select(10) }}
- dq.push_back(a[i])
- dq.push_back(i)
- dq.push_front(a[i])
- dq.push_front(i)
- ⑤ 处应填( ){{ select(11) }}
- maxx[i−k]=dq.front()
- maxx[i]=dq.front()
- maxx[i−k]=dq.back()
- maxx[i]=dq.back()