体型

89 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第N天,点击查看活动详情 第一题 请指出选择排序,冒泡排序,快速排序的时间复杂度分别是()

A O(n2)、O(n2)、O(nlog2n) B O(nlog2n)、、O(n^2)、O(nlog2n) C O(n)、O(n2)、O(n2) D O(nlog2n)、O(n2)、O(n2)

先进排序都是对数阶,一般排序方法都是n方

这道题的答案是A

💦第二题 在单链表中,增加头结点的目的是()

A 标识表结点中首结点的位置 B 算法实现上的方便 C 使单链表至少有一个结点 D 说明单链表是线性表的链式存储实现

增加头节点代码会简单些,做其他节点的插入删除两个没区别,如果是第一个节点,不带头节点需要特殊处理

这道题的答案是B

💦第三题 下列算法的功能是什么?

/L是无头节点单链表/ LinkList Demo(LinkList L){ ListNode *Q,*P; if(L&&L->next){ Q=L; L=L->next; P=L; while(P->next) P=P->next; p->next=Q; } return L; } 1 2 3 4 5 6 7 8 9 10 11 12 13 根据代码的操作画图,得出结论是让链表变得循环了

A 遍历链表

B 链表深拷贝

C 链表反转

D 单链表转变为循环链表

这道题的答案是D

💦第四题 表达式32^(4+22-6*3)-5求值过程中当扫描到6时,对象栈和运算符栈为(),其中 ^ 为乘幂

A 3,2,4,1,1;( * ^(+ * - B 3,2,8;( * ^ - C 3,2,4,2,2; ( * ^(- D 3,2,8;*^(-

这道题的答案是D

💦第五题 假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为()

A 3 B 37 C 97 D 50

这道题很简单,当前是47,存50个元素,就是47+50-60 = 37

这道题的答案是B

💦第六题 一棵完全二叉树第六层有9个叶结点(根为第一层),则结点个数最多有()

A 112 B 111 C 107 D 109

第六层有九个结点,七层满二叉树的结点个数 2 ^ 7 - 1 = 128

则这棵树的结点 128 - 9 * 2 = 109

这道题主要考察二叉树的性质

这道题的答案是D

💦第七题 有权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()

A 24 B 71 C 48 D 53

这道题的答案是B

💦第八题 已知小根堆为8,15,10,21,34,16,12,删除关键字8之后需重建堆,最后的叶子节点为()

A 34

B 21

C 16

D 12

这道题的答案是C

💦第九题 将10个元素散列到100000个单元的哈希表中,则()产生冲突

A 一定会

B 一定不会

C 仍可能会

空间很多,数据很少,哈希最大的特点是空见少数据多,哈希函数是映射函数,保不准数据很特殊,可能还是会映射同一个地址,只不过是产生冲突的可能性减少了,不能保证一定不会产生冲突

这道题的答案是C

💦第十题 下列排序算法中,元素的移动次数与关键字的初始排列次序无关的是 () 。

A 直接插入排序

B 起泡排序

C 基数排序

D 快速排序

ABD正序和反序都不同,基数排序是不需要移动数据和比较数据的,是所有排序里面唯一的,是通过分发和收集对数据的排序

这道题的答案是C

编程题 🔥 第一题 链接:年终奖

解题思路 本题需要使用动态规划求解。 定义f(i,j)表示从左上角走到坐标(i,j)处能获得的最大奖励。 搜索所有从左上角走到右下角的路径,找到最优路径。 f(i,j)分三种情况: 第一列:f(i, 0) = f(i-1, 0) + board(i, 0) 第一行:f(0,j) = f(0, j - 1) + b(0, j) 其它位置:f(i, j) = max{f(i-1, j), f(i, j - 1)} + board(i, j) 最后返回右下角的值。