选择题
- 头尾经常插入/删除元素的需求,那种数据结构比较好(双向链表)
- 操作系统给进程的时间片设置的太短会导致什么(操作系统开销增加)
- 一张卡牌抽取概率 1 4 \frac{1}{4} 41 ,连续两次没抽中则下一次必定抽中,该卡牌的实际抽取概率(怎么选项的分母都是 37 37 37)
- 以下属于监督学习算法的是:自编码器、支持向量机、k-means 聚簇、主成分分析(选了自编码器,傻了,应该是支持向量机才对,其他三个都是特征工程分类优化,不需要标签的,支持向量机需要使用样本的标注标签来计算间距)
- TCP 传输中,接收方接受窗口大小 20,发送方的窗口大小 100, 发送方的 UNA(未确认) 是 32,NXT(下一个序列号)是 38 ,请问发送方下一次还可以一次性发多少数据(当然是 20 减去已发送数据 6 得到剩余 14 个可发送字节?)
算法题
基数数量判断
给定形式如 a 8 ( 1 0 7 ) + a 7 ( 1 0 6 ) + ⋯ + a 2 ( 1 0 1 ) + a 1 a_8(10^7) + a_7(10^6) +\cdots + a_2(10^1) + a_1 a8(107)+a7(106)+⋯+a2(101)+a1 ,其中 a 1 − a 8 a_1-a_8 a1−a8 为不大于 7 7 7 的非负整数,请问这一类数中的奇数有多少个?
我的想法是只看最后一位个位数的奇偶性?不知道对不对
找出口
给定一个网格地图,'0'
表示空地、'1'
表示墙壁、['U', 'D', 'L', 'R']
表示上下左右方向的单向门,只允许与门相同的方向通行,否则视为墙壁,S
为入口,E
为出口。给定一张地图,问从入口到出口的最短距离是多少步?
常见的 BFS 题,只需要在层级 BFS 遍历的时候,对上下左右方向应用特定判断网格字符是否符合即可。注意 visited
访问掩码别忘了,不要直接在原地图上做掩码标记,否会在 BFS 的过程中修改了原地图的信息,可能导致 BFS 出错。
宝石合并
给定一个数组 nums ,和一个合并长度 k ,你可以选择数组中连续 k 个数构成的子数组合并成一个数,合并得到的新数为被合并的数的和,同时每一次合并的结果会被累加到一个分数变量上。目标是把数组合并到只剩下一个数时得到最高分,如果数组最后无法合并为一个数,则分数返回 -1 。
没思路,用注释写了几行说用树的自底向上尝试 DFS 划分构建看有没有合适的划分方法。结果后面问 Grok 说是 DP ,而且可以在一开始的时候就判断数组能否完成合并,因为每次合并固定减少元素数量 k − 1 k-1 k−1 个,傻了,没想到这点……
主观题
- 你认为遇到的一件比较复杂的事情,你是如何解决的?
- 你认为你的大学生活如何?有什么遗憾吗?