PROBLEM SET
题库
按难度与知识点筛选,找到适合的练习题。
题目列表
共 67434 题
A22007
下述C++代码实现了快速排序算法,最坏情况的时间复杂度是( )。int partition(vector<int>& arr, int low, int high) { int i = low, j = high; int pivot = arr[low]; //以首元素为基准 while (i < j) { while (i < j && arr[j] >= pivot) j--; while…
C-L5
困难
--
A22008
下⾯代码实现了归并排序。下述关于归并排序的说法中,不正确的是( )。void merge(vector<int>& arr, vector<int>& temp, int l, int mid, int r) { int i = l, j = mid + 1, k = l; while (i <= mid && j <= r) { if (arr[i] <= arr[j]) temp[k++] …
C-L5
困难
--
A22009
下列关于排序的说法,正确的是( )。
C-L5
困难
--
A22010
下述代码实现素数表的线性筛法,筛选出所有⼩于等于 n的素数,则横线上应填的代码是( )。vector<int> linear_sieve(int n) { vector<bool> is_prime(n + 1, true); vector<int> primes; is_prime[0] = is_prime[1] = 0; //0和1两个数特殊处理 for (int i = 2; i <= …
C-L5
困难
--
A22011
唯⼀分解定理描述的内容是( )。
C-L5
困难
--
A22012
下⾯代码实现了欧⼏⾥得算法。下⾯有关说法,错误的是( )。int gcd1(int a, int b) { return b == 0? a : gcd1(b, a % b); } int gcd2(int a, int b) { while (b!= 0) { int temp = b; b = a % b; a = temp; } return a; }
C-L5
困难
--
A22013
假设我们有两个数a=38和b=14,它们对模m同余,即a=b(mod m)。以下哪个值不可能是m?( )
C-L5
困难
--
A22014
下⾯关于单链表和双链表的描述中,正确的是( )。struct DNode { int data; DNode* prev; DNode* next; }; // 在双链表中删除指定节点 void deleteNode(DNode* node) { if (node->prev) { node->prev->next = node->next; } if (node->next) { node->…
C-L5
困难
--
A22015
区块链技术是⽐特币的基础。在区块链中,每个区块指向前⼀个区块,构成链式列表,新区块只能接在链尾,不允许在中间插⼊或删除。下⾯代码实现插⼊区块添加函数,则横线处填写( )。//区块(节点) struct Block { int index; // 区块编号(高度) string data; // 区块里保存的数据 Block* prev; // 指向前一个区块 Block(int idx, con…
C-L5
困难
--
A22016
对如下定义的循环单链表,横线处填写( )。 // 循环单链表的结点 struct Node { int data; // 数据域 Node* next; // 指针域 Node(int d) : data(d), next(nullptr) {} }; // 创建一个只有一个结点的循环单链表 Node* createList(int value) { Node* head = new Node(…
C-L5
困难
--
A22017
道具商店题目描术道具商店⾥有n件道具可供挑选。第i件道具可为玩家提升ai点攻击⼒,需要ci枚⾦币才能购买,每件道具只能购买一次。现在你有k枚⾦币,请问你最多可以提升多少点攻击⼒?
C-L6
困难
--
A22018
路径覆盖
C-L6
困难
--
A22019
假定只有⼀个根节点的树的深度为1,则⼀棵有n个节点的完全⼆叉树,则树的深度为[log2(n)]+1 。( )
C-L6
困难
--
A22020
⼩杨在玩⼀个闯关游戏,从第 1 关⾛到第 4 关。每⼀关的体⼒消耗如下(下标表⽰关卡编号): cost = [0, 3, 5, 2, 4 ] ,其中cost[i]表⽰到达第 i 关需要消耗的体⼒, cost[0]=0 表⽰在开始状态,体⼒消耗为0。⼩杨每次可以从当前关卡前进 1 步或 2 步。按照上述规则,从第 1 关到第 4 关所需消耗的最⼩体⼒为 7。( )
C-L6
困难
--
A22021
格雷编码相邻两个编码之间必须有多位不同,以避免数据传输错误。( )
C-L6
困难
--
A22022
下⾯的函数能正确判断⼀棵树是不是⼆叉排序树(左边的数字要⽐当前数字⼩,右边的数字要⽐当前数字⼤)。( )bool isBST(TreeNode* root, int minVal, int maxVal) { if (!root) return true; if (root->val < minVal || root->val >= maxVal) return false; return is…
C-L6
困难
--
A22023
在⼆叉排序树(BST)中,若某结点的左⼦树为空,则该结点⼀定是整棵树中的最⼩值结点。( )
C-L6
困难
--
A22024
函数调⽤管理可⽤栈来管理。( )
C-L6
困难
--
A22025
⼴度优先遍历⼆叉树可⽤栈来实现。( )
C-L6
困难
--
A22026
以下代码能够正确统计⼆叉树中叶⼦结点的数量。( )int countLeaf(TreeNode* root) { if (!root) return 0; if (!root->left && !root->right) return 1; return countLeaf(root->left) + countLeaf(root->right); }
C-L6
困难
--