选择题 共15道
判断题 共10道
编程题 共2道
关于以下C++代码,( )行代码会引起编译错误。
采用如下代码实现检查输入的字符串括号是否匹配,横线上应填入的代码为( )。
下面代码判断队列的第一个元素是否等于a,并删除该元素,横向上应填写( )。
以下C++代码实现n位的格雷码,则横线上应填写( )
二叉树的深度定义为从根结点到叶结点的最长路径上的结点数,则以下基于二叉树的深度优先搜索实现的深度计算函数中横线上应填写( )。
上一题的二叉树深度计算还可以采用二叉树的广度优先搜索来实现。以下基于二叉树的广度优先搜索实现的深度计算函数中横线上应填写( )。
二叉搜索树中的每个结点,其左子树的所有结点值都小于该结点值,右子树的所有结点值都大于该结点值。以下代码对给定的整数数组(假设数组中没有数值相等的元素),构造一个对应的二叉搜索树,横线上应填写():
对上题中的二叉搜素树,当输入数组为 [5,3,7,2,4,6,8]时,构建二叉搜索树,并采用如下代码实现的遍历方式,得到的输出是( )。
阅读以下用动态规划解决的0-1背包问题的函数,假设背包的容量W 是10kg,假设输入4个物品的重量weights分别为1,3,4,6 (单位为kg),每个物品对应的价值 values分别为 20,30,50,60,则函数的输出为( )。
运行以下C++代码,屏幕将输出“derived class”。
如下列代码所示的基类(base)及其派生类(derived),则生成一个派生类的对象时,只调用派生类的构造函数
小杨有一个正整数n,小杨想将它拆分成若干完全平方数的和,同时小杨希望拆分的数量越少越好。
小杨请你编写出程序计算出总和为n的完全平方数的最少数量。
第一行包含一个正整数n,含义如题面所示。
输出一个整数,代表总和为n的完全平方数的最少数量。
18
2
18=9+9=16+1+1,其中最少需要2个完全平方数。
对于全部数据,保证有1<=n<=105
小杨计划学习m种算法,为此他找了n道题目来帮助自己学习,每道题目至多学习一次。
小杨对于m种算法的初始掌握程度均为0。第i道题目有对应的知识点ai,即学习第i道题目可以令小杨对第ai种算法的掌握程度提高bi。小杨的学习目标是对m种算法的掌握程度均至少为k。
小杨认为连续学习两道相同知识点的题目是不好的,小杨想请你编写程序帮他计算出他最少需要学习多少道题目才能使得他在完成学习目标的同时避免连续学习两道相同知识点的题目。
第一行三个正整数m,n,k,代表算法种类数,题目数和目标掌握程度。
第二行n个正整数a1,a2,...,an,代表每道题目的知识点。
第二行n个正整数b1,b2,...,bn,代表每道题目提升的掌握程度。
输出一个整数,代表小杨最少需要学习题目的数量,如果不存在满足条件的方案,输出-1。
3 5 10 1 1 2 3 3 9 1 10 10 1
4
样例 2
2 4 10 1 1 1 2 1 2 7 10
-1
对于样例1,一种最优学习顺序为第一道题,第三道题,第四道题,第二道题
对于全部数据,保证有1<=m,n<=105,1<=bi,k<=105,1<=ai<= m