PROBLEM SET
题库
按难度与知识点筛选,找到适合的练习题。
题目列表
共 67434 题
A20874
埃氏筛中将内层循环从 j=i*i 开始而不是 j=2*i 的主要原因是( )。vector<int> eratosthenes_sieve(int n) { vector<bool> is_composite(n + 1, false); vector<int> primes; for (int i = 2; i <= n; i++) { if (is_composite[i]) continu…
C-L5
困难
--
A20875
下面代码实现了欧拉(线性)筛,横线处应填写( )。vector<int> euler_sieve(int n) { vector<bool> is_composite(n + 1, false); vector<int> primes; for (int i = 2; i <= n; i++) { if (!is_composite[i]) primes.push_back(i); for (i…
C-L5
困难
--
A20876
对如下代码实现的欧几里得算法(辗转相除法),执行gcd(48,18)得到的调用序列为( )。int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
C-L5
困难
--
A20877
下面函数用“哑结点”统一处理删除单向链表中的头结点与中间结点。横线处应填( )。struct Node{ int val; Node* next; Node(int v):val(v),next(nullptr){} }; Node* eraseAll(Node* head, int x){ Node dummy(0); dummy.next = head; Node* cur = &dummy…
C-L5
困难
--
A20878
双向循环链表中要在结点 p 之前插入新结点 s (均非空),以下指针操作正确的是( )。
C-L5
困难
--
A20879
关于单链表、双链表和循环链表,下列说法正确的是( )。
C-L5
困难
--
A20880
完全二叉树
C-L6
困难
--
A20881
选数
C-L6
困难
--
A20882
在动态规划问题中,状态空间相同且没有重复计算的情况下,“状态转移⽅程+递推”与“递归+记忆化搜索” 的时间复杂度通常相同。( )
C-L6
困难
--
A20883
下列代码实现了一个0-1背包的一维动态规划代码,内层循环是经典的逆序写法。若将内层循环改成正序遍 历(即 for (int j = w[i]; j <= W; j++) ),仍能得到正确答案。( )int main() { int W = 5; int w[] = {2, 3, 4}; int v[] = {10, 1, 1}; int n = 3; int dp[6] = {0}; for (…
C-L6
困难
--
A20884
设二叉树共有n个结点,函数 preorderTraversal 以下代码的时间复杂度为O(n),空间复杂度为O(n)。( )struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x): val(x), left(nullptr), right(nullptr) {} }; void preorder(Tr…
C-L6
困难
--
A20885
在 C++ 中使用栈来非递归地实现二叉树的前序遍历时,为了保证遍历顺序正确,在处理完当前结点后,应 该先将该结点的左孩子压入栈中,然后再将右孩子压入栈中。( )
C-L6
困难
--
A20886
在 C++ 中使用一维数组vector<int>tree存储按层序遍历的完全二叉树时,若根节点存储在tree[0] ,则对于任意⾮空节点 tree[i] ,其右孩子(如果存在)必然位于 tree[2 * i + 2] 。( )
C-L6
困难
--
A20887
哈夫曼编码是一种变长的前缀编码,在解码时不需要额外的分隔符就能唯一还原,这是因为在哈夫曼树中, 任何一个字符的叶子结点都不会成为另一个字符结点的祖先。( )
C-L6
困难
--
A20888
若所有字符出现频率相同,则哈夫曼编码一定会得到完全二叉树。( )
C-L6
困难
--
A20889
对如下结构的树,执行 travel 函数,输出结果是 1 2 3 4 5 。( ) 1 / \ 2 3 / \ 4 5struct Node { int val; Node *left, *right; Node(int v) : val(v), left(nullptr), right(nullptr) {} }; void travel(Node* root) { if (!root) re…
C-L6
困难
--
A20890
C++ 中的继承支持单继承和多继承,但子类无法直接访问父类的私有成员。( )
C-L6
困难
--
A20891
下面定义了一个表示二维坐标点的类Point,并提供了一个带参数的构造函数,但第② 行Point b;会调用编译器自动生成的默认构造函数,将b.x和b.y 被初始化为0.0,程序可以正常编译运行。( )class Point { public: double x, y; Point(double px, double py) : x(px), y(py) {} void print() { cou…
C-L6
困难
--
A20893
小朋友们去邻里拜年,每个家里有不同数量的糖果。规则是:不能连续进⼊两个相邻的房子(即不能同时 取相邻两家的糖果)。目标是拿到最多糖果。以下是代码实现,请补全横线。( )int visit(vector<int>& nums) { if (nums.empty()) { return 0; } int size = nums.size(); if (size == 1) { return nums…
C-L6
困难
--
A20895
给定一棵二叉树,采用广度优先搜索 (BFS) 算法,返回右视图所有节点的值。其中右视图定义为:二叉树 的右视图是从树的右侧看过去时可见的节点集合,即右视图中的每个节点都是某一层中最右侧的节点。( )struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(nullptr),…
C-L6
困难
--