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

PROBLEM SET

题库

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

共 67434 题
重置

题目列表

共 67434 题
A22232 根据下⾯代码,以下说法正确的是( )。def factorial1(n): if n <= 1: return 1 return n * factorial1(n - 1) def factorial2(n): result = 1 while n > 1: result *= n n -= 1 return result Python-L5 -- 困难 -- A22233 ⼩杨要把⼀根长度为 L 的⽊头切成 K 段,使得每段长度⼩于等于 x 。已知每切⼀⼑只能把⼀段⽊头分成两段,他⽤⼆分法找到满⾜条件的最⼩ x ( x 为正整数),则横线处应填写( )。def check(L, K, x): cuts = (L - 1) // x return cuts <= K def binary_cut(L, K): l = 1 r = L while l < r: ___… Python-L5 -- 困难 -- A22234 下⾯代码尝试在有序数组中查找第⼀个⼤于等于 x 的元素位置。如果没有⼤于等于 x 的元素,返回arr.size() 。以下说法正确的是( )。def lower_bound(arr, x): l= 0 r = len(arr) while l < r: mid = l + (r - l) // 2 if arr[mid] >= x: r = mid else: l = mid + 1 retur… Python-L5 -- 困难 -- A22235 下述python代码实现了快速排序算法,最差情况时间复杂度是( )。def partition(arr, low, high): i = low j = high pivot = arr[low] while i < j: while i < j and arr[j] >= pivot: j -= 1 while i < j and arr[i] <= pivot: i += 1 if i < … Python-L5 -- 困难 -- A22236 下⾯代码实现了归并排序。下述关于归并排序的说法中,不正确的是( )。def merge(arr, temp, l, mid, r): i = l j = mid + 1 k = l while i <= mid and j <= r: if arr[i] <= arr[j]: temp[k] = arr[i] i += 1 else: temp[k] = arr[j] j += 1 k += 1… Python-L5 -- 困难 -- A22238 下述代码实现素数表的线性筛法,筛选出所有⼩于等于n的素数,则横线上应填的代码是( )。def linear_sieve(n): if n < 2: return [] is_prime = [True] * (n + 1) is_prime[0] = is_prime[1] = False primes = [] for i in range(2, n + 1): if is_prime[i]:… Python-L5 -- 困难 -- A22240 下⾯代码实现了欧⼏⾥得算法,下⾯有关说法,错误的是( )。def gcd1(a: int, b: int) -> int: return a if b == 0 else gcd1(b, a % b) def gcd2(a: int, b: int) -> int: while b != 0: temp = b b = a % b a = temp return a Python-L5 -- 困难 -- A22242 下⾯关于单链表和双链表的描述中,正确的是( )。class DNode: def __init__(self, data): self.data = data self.prev = None self.next = None def delete_dnode(node): if node.prev: node.prev.next = node.next if node.next: node.n… Python-L5 -- 困难 -- A22243 区块链技术是⽐特币的基础。在区块链中,每个区块指向前⼀个区块,构成链式列表,新区块只能接在链尾,不允许在中间插⼊或删除。下⾯代码实现插⼊区块添加函数,则横线处填写( )。class Block: def __init__(self, idx, data, prev_block): self.idx = idx self.data = data self.prev = prev_block cla… Python-L5 -- 困难 -- A22244 对如下定义的循环单链表,横线处填写( )。class Node: def __init__(self, data): self.data = data self.next = None def create_list(value): head = Node(value) head.next = head return head def insert_tail(head, value): p = … Python-L5 -- 困难 -- A22247 假定只有一个根节点的树的深度为1,则一棵有n个节点的完全二叉树,则树的深度为[log2(n)]+1 。( ) Python-L6 -- 困难 -- A22248 ⼩杨在玩一个闯关游戏,从第 1 关⾛到第 4 关。每一关的体⼒消耗如下(下标表⽰关卡编号): cost = [0, 3, 5, 2, 4 ] ,其中 表⽰到达第 i 关需要消耗的体⼒, cost[0]=0 表⽰在开始状态,体⼒消耗为0。⼩杨每次可以从当前关卡前进 1 步或 2 步。按照上述规则,从第 1 关到第 4 关所需消耗的最⼩体⼒为 7。( ) Python-L6 -- 困难 -- A22250 下面的函数能正确判断一棵树是不是二叉排序树(左边的数字要⽐当前数字⼩,右边的数字要⽐当前数字⼤)。( )class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def is_bst(root, min_val=float… Python-L6 -- 困难 -- A22251 在二叉排序树(BST)中,若某结点的左⼦树为空,则该结点一定是整棵树中的最⼩值结点。( ) Python-L6 -- 困难 -- A22252 函数调用管理可用栈来管理。( ) Python-L6 -- 困难 -- A22253 ⼴度优先遍历二叉树可用栈来实现。( ) Python-L6 -- 困难 -- A22254 以下代码能够正确统计二叉树中叶⼦结点的数量。( )class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def count_leaf(root): if not root: return 0 if not root.l… Python-L6 -- 困难 -- A22255 面向对象编程中,封装是指将数据和操作数据的方法绑定在一起,并对外隐藏实现细节。( ) Python-L6 -- 困难 -- A22256 以下代码中,构造函数被调用的次数是1次。( )class Test: init_count = 0 def __init__(self): Test.init_count += 1 print("T", end="") def __copy__(self): print("(拷贝构造,不触发__init__) ", end="") new_obj = Test.__new__(Test) ret… Python-L6 -- 困难 -- A22257 以下关于动态规划的说法中,错误的是( )。 Python-L6 -- 困难 --