有赞 前端工程师面试题
以下哪种数据结构最适合用来检查一段 HTML 代码中所有开始标签是否都有对应的结束标签?
正确答案: B
队列
栈
双向链表
二叉树
给定一个按升序排列的整数数组 以及一个正整数 ,现在需要在数组 中查找两个元素 和 ,使得 ,请问最优算法的时间复杂度是多少?
正确答案: A
现在有一棵 1000 个节点的二叉搜索树,节点上数字范围是 ,现在需要在这棵树中查找数字 365,以下哪些搜索顺序不可能出现(假设算法实现正确)?
正确答案: C
4, 254, 403, 400, 332, 346, 399, 365
926, 222, 913, 246, 900, 260, 364, 365
927, 204,913, 242, 914, 247, 365
4, 401, 389, 221, 268, 384, 383, 280, 365
现在有 25 匹马,不知道每匹马的速度,也没有工具测量它们的速度。假如每场比赛最多只能 5 匹马参加,请问最少需要比多少次才能找出其中最快的 3 匹马?
正确答案: B
6
7
8
9
以下关于 Cookie 的说法正确的是
正确答案: B C D
Cookie的内容都可以通过JavaScript读取
Cookie过多会影响网络请求性能
Cookie可以用来跟踪用户的浏览行为
Cookie可以持久保存
以下关于 WebAssembly 说法正确的是
正确答案: B D
WebAssembly是以二进制原生代码的形式分发的
C语言写的代码可以编译成WebAssembly
WebAssembly是asm.js的一个超集
WebAssembly可以调用JavaScript的函数
为什么通常情况下增加内存可以提高系统性能?
正确答案: C
虚拟内存增加了
更大的内存速度更快
Page fault发生更少了
Segment fault发生更少了
以下哪些数据结构不是二叉树?
正确答案: B
红黑树
B树
Huffman树
区间树(Interval Tree)
以下操作中数组比链表速度更快的是?
正确答案: C E
原地逆序
头部插入
访问中间元素
访问头部元素
随机访问任意元素
有 5 个节点的二叉搜索树可能有几种不同的形态?
正确答案: B
32
42
120
5040
有一个有序的任务列表,需要支持读取操作(get),此外它会不断收到推送,推送有三种类型:任务进度更新推送(update);任务完成推送(done);新任务推送(new)。
当读取(get)时,需要返回一个有序的数组;
当收到任务进度更新推送(update)时,我们需要将对应的任务移到列表的头部;
当收到任务完成推送(done)时,我们需要将此任务从列表中移除;
当收到新任务推送时(new),我们需要将新任务加到列表头部;
每个任务都会有个 taskId 字段唯一标识此任务,尝试设计此任务列表的内部数据结构,让其支持以上的操作(get、update、done、new),并尝试分析这些操作的时间复杂度。
有一对刚出生的兔子(一雌一雄)被放生到一个岛上,兔子会不断繁殖,它们在出生后的第一个月不能繁殖,之后每个月结尾时会生出一雌一雄两只兔子。
请问两年结束之时这个岛上会有多少只兔子?
请用你熟悉的语言实现一个函数计算 年结束之时这个岛上共有多少只兔子。
参考