测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

PROBLEM SET

递归

按知识点筛选题目,系统巩固该考点。

共 408 题
重置

题目列表

共 408 题
A67211 下列代码实现了归并排序(Merge Sort)的分治部分。为了正确地将数组 a 的 [left, right] 区间进行排序,横线处应该填入的是( )。void merge_sort(int a[], int left, int right) { 2025年 递归 归并排序 分治算法 -- -- A67178 下面C++程序中,函数 query 的时间复杂度是( )。 2025年 递归 时间复杂度 分治算法 -- -- A67156 以下函数 check() 用于判断一棵二叉树是否为( )。 2025年 递归 二叉树 数据结构 -- -- A67155 以下c++代码实现了二叉树的( )。void traverse(TreeNode* root) { 2025年 递归 二叉树遍历 后序遍历 -- -- A67153 以下函数实现了二叉排序树(BST)的( )操作。TreeNode* op(TreeNode* root, int x) { 2025年 递归 插入操作 二叉排序树 -- -- A67152 下列C++代码实现了树的深度优先遍历,则横线处应填入( )。 2025年 递归 树结构 深度优先遍历 -- -- A67151 给定一棵普通二叉树(节点值没有大小规律),下面C++代码判断是否存在值为 x 的结点,则横线处应填入( )。 2025年 递归 条件判断 二叉树遍历 -- -- A67143 以下C++代码能够正确统计二叉树中叶子结点的数量。int countLeaf(TreeNode* root) { 2025年 递归 二叉树 叶子结点统计 -- -- A67139 下面的函数能正确判断一棵树是不是二叉排序树(左边的数字要比当前数字小,右边的数字要比当前数字 大)。bool isBST(TreeNode* root, int minVal, int maxVal) { 2025年 递归 树遍历 二叉排序树 -- -- A67124 下面给出了阶乘计算的两种方式。以下说法正确的是( )。 2025年 递归 循环结构 阶乘计算 -- -- A67112 以下 fib 函数计算第 n 项斐波那契数( fib(0)=0 , fib(1)=1 ),其时间复杂度为 O(n)。int fib(int n) { 2025年 递归 时间复杂度 斐波那契数列 -- -- A67111 递归函数一定要有终止条件,否则可能会造成栈溢出。 2025年 递归 栈溢出 终止条件 -- -- A67101 给定函数 climbStairs(int n) 的定义如下,则 climbStairs(5) 的返回的值是( )。 2025年 递归 斐波那契数列 函数调用 -- -- A60995 下面代码用分治求“最大连续子段和”,其时间复杂度为( )。1 import sys 2026年 递归 分治算法 时间复杂度分析 最大连续子段和 -- -- A60993 有n位同学的成绩已经从小到大排好序,现在对它执行下面这段以第一个元素为 pivot 的快速排序,请问此次排序的时间复杂度是( )。1 def quicksort(a, l, r) 2026年 递归 快速排序 时间复杂度 有序数组 -- -- A60982 任何递归程序都可以改写为等价的非递归程序,但改写后的非递归程序一定需要显式地使用栈来模拟递归 调用过程。 2026年 递归 非递归改写 -- -- A67949 执行 climb(6) 的返回值为( )。1 int climb(int n){ 2026年 递推 递归 循环结构 -- -- A67930 对如下代码实现的欧几里得算法(辗转相除法),执行 gcd(48, 18) 得到的调用序列为( )。1 int gcd(int a, int b) { 2026年 递归 函数调用 欧几里得算法 -- -- A67923 下面代码用分治求“最大连续子段和”,其时间复杂度为( )。1 int solve(vector<int>& a, int l, int r){ 2026年 递归 分治算法 时间复杂度分析 最大连续子段和 -- -- A67921 有n位同学的成绩已经从小到大排好序,现在对它执行下面这段以第一个元素为 pivot 的快速排序,请 问此次排序的时间复杂度是( )。1 void quicksort(vector<int>& a, int l, int r) { 2026年 递归 分治 快速排序 时间复杂度 -- --