PROBLEM SET
递归
按知识点筛选题目,系统巩固该考点。
题目列表
共 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年
--
--