有赞2019校招前端笔试(第一批)

时长:120分钟 总分:100分

218浏览 1人已完成答题

题型介绍
题型 单选题 多选题 简答题
数量 1 9 2
1.
给定个不同的整数以及一棵结构已经确定的有个 节点的二叉树,现在需要将这些整...
问题详情

给定个不同的整数以及一棵结构已经确定的有 节点的二叉树,现在需要将这些整数填充到这个二叉树的节点上,请问有多少种填充方式使得填充后的二叉树是一棵二叉查找树?





2.
进栈序列为 abcde,进栈后随时可以出栈,下面哪种出栈结果不可能发生
问题详情

进栈序列为 abcde,进栈后随时可以出栈,下面哪种出栈结果不可能发生





3.
以下哪个排序算法对单向链表排序时间复杂度最低?
问题详情




4.
下面关于进程和线程的关系不正确的是
问题详情




5.
文本编辑器的 undo/redo 可以用哪种数据结构实现?
问题详情

文本编辑器的 undo/redo 可以用哪种数据结构实现?





6.
下面说法正确的是
问题详情




7.
有一个长度为  的有序整数数组,判断一个元素是否在数组...
问题详情

有一个长度为  的有序整数数组,判断一个元素是否在数组中出现超过   次需要的最少比较次数是





8.
下面这段 C 代码的输出是什么? int f(int n) { &...
问题详情

下面这段 C 代码的输出是()
int f(int n)
{
    if(n <= 1)
        return 1
    if(n%2 == 0)
        return f(n/2)
    return f(n/2) + f(n/2+1)
}
 
int main()
{
    printf("%d", f(11))
    return 0
}





9.
Alice 使用公开密钥加密算法给 Bob 发送了一条加密信息,以下描述哪...
问题详情

Alice 使用公开密钥加密算法给 Bob 发送了一条加密信息,以下描述哪些是对的?





10.
假设已经实现了一个时间复杂度为  的数组中位数查找算法...
问题详情

假设已经实现了一个时间复杂度为  的数组中位数查找算法  ,如果在快速排序算法中使用算法  返回的中位数作为重排的 ,请问这个快速排序算法的最坏时间复杂度是多少?





11.
请设计一个数据结构来实现下面这些方法,所有方法都使用同一个数据结构实现,这...
问题详情

请设计一个数据结构来实现下面这些方法,所有方法都使用同一个数据结构实现,这个数据结构必须尽可能让使用频率高的方法效率高,请详细说明如何用所选的数据结构实现每个方法

,并给出每个方法的时间复杂度

1. findMin() : 返回最小的元素
使用频率:非常高
2. findMax() : 返回最大的元素
使用频率:非常高
3. deleteMin() : 删除最小的元素
使用频率:较高
4. deleteMax() : 删除最大的元素
使用频率:较高
5. insert() : 插入一个元素
使用频率:低        
6. delete() : 删除一个元素
使用频率:低







12.
下面两段代码的输出结果分别可能是什么?请简述原因。 int a =...
问题详情

下面两段代码的输出结果分别可能是什么?请简述原因。
int a = 0
void func(int* i) {
    for (int i = 0 i < 1000000 i++)
    a = *i
    free(i)
}
int main() {
    pthread_t t[3]
    for (int i = 0 i < 3 i++) {
        int* b = (int*)malloc(sizeof(int))
        *b = i
        pthread_create(&t[i], NULL, (void*)&func, (void*)b)
    }
    for (int i = 0 i < 3 i++) {
        pthread_join(t[i], NULL)
    }
    printf("%d\n", a)
    return 0
}


int a = 0
void func(int* i) {
    for (int i = 0 i < 1000000 i++)
    a = *i
    free(i)
}
int main() {
    for (int i = 0 i < 3 i++) {
        int* b = (int*)malloc(sizeof(int))
        *b = i
        fork()
        func(b)
    }
    printf("%d\n", a)
    return 0
}