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

PROBLEM SET

题库

按难度与知识点筛选,找到适合的练习题。

共 67434 题
重置

题目列表

共 67434 题
A23757 线性筛关键是“每个合数只会被最小质因子筛到一次”,因此为 O(n)。( ) C-L5 -- 困难 -- A23758 二分查找依赖数据的有序性,通过循环逐步缩减一半搜索区间来进行查找,且仅适用于数组或基于数组实现的数据结构。( ) C-L5 -- 困难 -- A23759 链表通过更改指针实现高效的结点插入与删除,但结点访问效率低、占用内存较多,且对缓存利用不友好。( ) C-L5 -- 困难 -- A23760 下面递归实现的斐波那契数列的时间复杂度为O(2n) 。( )long long fib_memo(int n, long long memo[]) { if (n <= 1) return n; if (memo[n] != -1) return memo[n]; memo[n] = fib_memo(n - 1, memo) + fib_memo(n - 2, memo); return me… C-L5 -- 困难 -- A23761 假设函数 gcd() 能正确求两个正整数的最大公约数,则下面的 findMusicalPattern(4,6) 函数返回2。( )void findMusicalPattern(int rhythm1, int rhythm2) { int commonDivisor = gcd(rhythm1, rhythm2); int patternLength = (rhythm1 * rhythm2)… C-L5 -- 困难 -- A23762 基于下面定义的函数,通过判断 isDivisibleBy9(n) == isDigitSumDivisibleBy9(n) 代码可验算如果一个数能被9整除,则它的各位数字之和能被9整除。( )bool isDivisibleBy9(int n) { return n % 9 == 0; } bool isDigitSumDivisibleBy9(int n) { int sum = 0; str… C-L5 -- 困难 -- A23763 给定一个由非负整数组成的数组 digits ,表示一个非负整数的各位数字,其中最高位在数组首位,且digits 不含前导0(除非是0本身)。下面代码对该整数执行 +1 操作,并返回结果数组,则横线上应填写( )。vector<int> plusOne(vector<int>& digits) { for (int i = (int)digits.size() - 1; i >= 0; --i) … C-L5 -- 困难 -- A23766 下述C++代码实现了归并排序算法,则横线上应填写( )。void merge(vector<int>& nums, int left, int mid, int right) { // 左子数组区间为 [left, mid],右子数组区间为 [mid+1, right] vector<int> tmp(right - left + 1); int i = left, j = mid + 1, k… C-L5 -- 困难 -- A23767 下述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--; // 从右往左… C-L5 -- 困难 -- A23768 给定一个 n x n 的矩阵 matrix ,矩阵的每一行和每一列都按升序排列。函数 countLE 返回矩阵中第k 小的元素,则两处横线上应分别填写( )。// 统计矩阵中 <= x 的元素个数: 从左下角开始 int countLE(const vector<vector<int>>& matrix, int x) { int n = (int)matrix.size(); int i = … C-L5 -- 困难 -- A23769 唯一分解定理描述的是( )。 C-L5 -- 困难 -- A23770 关于埃氏筛和线性筛的比较,下列说法错误的是( )。 C-L5 -- 困难 -- A23773 以下代码计算两个正整数的最大公约数(GCD),横线上应填写( )。int gcd(int a, int b) { if (a < b) { swap(a, b); } while (b != 0) { int temp = a % b; a = b; b = temp; } return ______; } C-L5 -- 困难 -- A23774 isPerfectNumber 判断一个正整数是否为完全数(该数是否即等于它的真因子之和),则横线上应填写( )。一个正整数 n 的真因子包括所有小于 n 的正因子,如28的真因子为1, 2, 4, 7, 14。bool isPerfectNumber(int n) { if(n <= 1) return false; int sum = 1; for(int i = 2; ____; i++)… C-L5 -- 困难 -- A23775 函数 hasCycle 采用Floyd快慢指针法判断一个单链表中是否存在环,链表的头节点为 head ,即用两个指针在链表上前进: slow 每次走 1 步, fast 每次走 2 步,若存在环, fast 终会追上 slow (相遇);若无环,fast 会先到达 nullptr,则横线上应填写( )。struct Node { int val; Node *next; Node(int x) … C-L5 -- 困难 -- A23776 removeElements 删除单链表中所有结点值等于 val 的结点,并返回新的头结点,其中链表头结点为head ,则横线处填写( )。// 结点结构体 struct Node { int val; Node* next; Node() : val(0), next(nullptr) {} Node(int x) : val(x), next(nullptr) {} Node(int x, … C-L5 -- 困难 -- A23777 以下哪种情况使用链表比数组更合适?( ) C-L5 -- 困难 -- A23778 货物运输A 国有n座城市,依次以1,2,...,n编号,其中 1 号城市为首都。这n座城市由n - 1条双向道路连接,第i条道路(1≤i< n)连接编号为ui,vi的两座城市,道路长度为li。任意两座城市间均可通过双向道路到达。现在 A 国需要从首都向各个城市运送货物。具体来说,满载货物的车队会从首都开出,经过一座城市时将对应的货物送出,因此车队需要经过所有城市。A 国希望你设计一条路线,在从首… C-L6 -- 困难 -- A23779 划分字符串 C-L6 -- 困难 -- A23780 有一排香蕉,每个香蕉有不同的甜度值。小猴子想吃香蕉,但不能吃相邻的香蕉。以下代码能找到小猴子吃到最甜的香蕉组合。( )// bananas: 香蕉的甜度 void findSelectedBananas(vector<int>& bananas, vector<int>& dp) { vector<int> selected; int i = bananas.size() - 1; while … C-L6 -- 困难 --