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

PROBLEM SET

题库

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

共 67434 题
重置

题目列表

共 67434 题
A28575 以下关于完全二叉树的代码描述,正确的是( )。from collections import deque class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def is_complete_tree(root): i… Python-L6 -- 困难 -- A28576 以下代码实现了树的哪种遍历方式?class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def traverse(root): if root is None: return print(root.val, end=" … Python-L6 -- 困难 -- A28577 哈夫曼编码是一种用于数据压缩的算法。以下关于哈夫曼编码的描述中,不正确的是( )。 Python-L6 -- 困难 -- A28578 在面向对象编程中,类是一种重要的概念。下面关于类的描述中,不正确的是( )。 Python-L6 -- 困难 -- A28582 小杨有10元去超市买东西,每个商品有各自的价格,每种商品只能买1个,小杨的目标是买到最多数量的商品。小杨采用的策略是每次挑价格最低的商品买,这体现了分治思想。 Python-L5 -- 困难 -- A28590 单链表中删除某个结点 p (非尾结点),但不知道头结点,可行的操作是将 p 的值设为 p.next 的值,然后删除 p.next 。 Python-L5 -- 困难 -- A28591 小杨编写了一个如下的高精度乘法函数,则横线上应填写的代码为( )。def multiply(a, b): m, n = len(a), len(b) c = [0] * (m + n) for i in range(m): for j in range(n): c[i + j] += a[i] * b[j] carry = 0 for k in range(len(c)): ——————————… Python-L5 -- 困难 -- A28592 函数 def find_max(arr, low, high): 计算数组中最大元素,其中数组 arr 从索引 low 到 high ,( )正确实现了分治逻辑。 Python-L5 -- 困难 -- A28594 下面的python代码实现了二分查找算法,在数组 arr 找到目标元素 target 的位置,则横线上能填写的最佳代码是( )。def binary_search(arr, left, right, target): while left <= right: _________________________ if arr[mid] == target: return mid elif arr[… Python-L5 -- 困难 -- A28596 考虑以下python代码实现的快速排序算法,将数据从小到大排序,则横线上应填的最佳代码是( )。def partition(arr, low, high): pivot = arr[high] i = low - 1 for j in range(low, high): _________________________________ arr[i + 1], arr[high] = arr[h… Python-L5 -- 困难 -- A28598 对下面两个函数,说法错误的是( )。def factorialA(n): if n <= 1: return 1 return n * factorialA(n - 1) def factorialB(n): if n <= 1: return 1 res = 1 for i in range(2, n + 1): res *= i return res Python-L5 -- 困难 -- A28600 下述代码实现素数表的线性筛法,筛选出所有小于等于n的素数,横线上应填的最佳代码是( )。def sieve_linear(n): is_prime = [True] * (n + 1) primes = [] if n < 2: return primes # is_prime[0] = is_prime[1] = False for i in range(2, n // 2 + 1): if … Python-L5 -- 困难 -- A28602 用以下辗转相除法(欧几里得算法)求gcd(84, 60)的步骤中,第二次调用gcd()函数计算的数是( )。def gcd(a, b): big = max(a, b) small = min(a, b) if big % small == 0: return small return gcd(small, big % small) Python-L5 -- 困难 -- A28603 假设双向循环链表包含头尾哨兵结点(不存储实际内容),分别为 head 和 tail ,链表中每个结点有两个指针域 prev 和 next ,分别指向该结点的前驱及后继结点。下面代码实现了一个空的双向循环链表,横线上应填的最佳代码是( )。class ListNode: def __init__(self, val=None): self.data = val self.prev = None s… Python-L5 -- 困难 -- A28604 双向链表中每个结点有两个指针域 prev 和 next ,分别指向该结点的前驱及后继结点。设 p 指向链表中的一个结点,它的前驱结点和后继结点均非空。现要求删除结点 p ,则下述语句中错误的是( )。 Python-L5 -- 困难 -- A28608 执行下面Python代码后,会输出 [4, 6] 。print(list(map(sum, zip([1, 2], [3, 4])))) Python-L4 -- 较难 -- A28609 Python中允许在同一个 with 语句中打开多个文件。with open('a.txt', 'r') as f1, open('b.txt', 'w') as f2: data = f1.read() f2.write(data) Python-L4 -- 较难 -- A28610 执行下面Python代码,会触发SyntaxError异常,但不会输出 Error 。try: print("Hello" except SyntaxError: print("Error") Python-L4 -- 较难 -- A28611 对5个不同的数据元素进行直接插入排序,最多需要比较9次。 Python-L4 -- 较难 -- A28612 下面这段程序的时间复杂度为平方阶O(n2) 。def func(n): for i in range(n): for j in range(n): print(i, j) Python-L4 -- 较难 --