# TP-Link(嵌入式软件)

# 笔试

选择题:

  • 物理层设备
  • 可能会出现进程饿死的进程调度算法
  • 调用 Fork 后,产生的子进程保留了父进程的什么
  • Huffman 编码
  • 采用 LRU 算法时,进程访问过程中的缺页次数、缺页率
  • 二叉树中序遍历所需栈高度与什么有关
  • 利用栈来执行带括号的算术表达式,对于某个表达式所需的最小栈大小
  • 排序算法的时间复杂度
  • 给出两段程序(递归版本、非递归版本),比较
  • 回文字符串的判断(选出一项,补全代码)

简答题:

  • 内存越界是什么,内存越界是否会导致程序崩溃,为什么,举例说明内存越界会造成那些后果
  • Java 中的 CAS 机制原理(选做)
  • 双向链表中的节点替换(补全代码)
  • 7 位电话号码,给定超过一百万个的电话号码,对电话号码去重,排序,存储号码的内存 buffer 限制为 1MB

编程题:

  • 环形链表 II (力扣 142):核心代码模式
  • 乘积最大子数组(力扣 152):ACM 模式

选择题、简答题、编程题一共 60 分钟

行测:(每部分 10 分钟)

  • 言语理解与表达
  • 判断推理
  • 图形推理
  • 数量关系

# 一面

快速排序、选择排序的基本原理

全局变量、局部变量、静态变量

解决哈希冲突的方法

介绍拉链法的原理

OSI 参考模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

第一轮面试一共 10 分钟

# 二面

智力题:7g 砝码和 2g 砝码各一个,天平一个,如何用最少次数将 140g 盐分成 50g 和 90g 各一份?

  • 正确答案:最少需要操作三次
    • 利用天平将 140g 盐分成两份 70g
    • 利用 9g 砝码将 70g 盐分成 9g 和 61g
    • 利用 2g 砝码与 9g 盐将 61g 盐分成 11g 和 50g

算法题:二叉树的最近公共祖先(力扣 236

  • 先讲思路,再在自己的 IDE 上编程实现(核心代码模式)

最后问了项目,大概 10 分钟左右

第二轮面试一共 40 分钟

# 三面

自我介绍

本科成绩是什么情况?是保研的吗?

为嵌入式软件岗做了哪些相关准备?

计算机网络、操作系统、数据结构与算法学过吗?

数据结构与算法刷了多少题?

TCP 与 UDP 有什么区别?

如何理解 TCP 的可靠传输?

TCP/IP 网络模型是怎样的?每一层对应有哪些协议?

如何用两个队列实现一个栈?

研究生课题的主要内容?目的是什么?是不是自己一个人完成的?成果?

有哪些兴趣爱好?是否拿出摄影作品去参加过学校的展览?骑行都去过哪些地方?

父母的工作

兄弟姐妹的情况

反问:

  • 部门 / 分组是怎么确定的?入职以后确定
  • 主要用的编程语言是什么?用的最多的是 C/C++ ,会经常使用数据结构与算法、操作系统的相关内容

最后,面试官建议认真学一下操作系统

第三轮面试一共 18 分钟

# SHEIN(算法工程师 - 运筹预测方向)

# 测评

一共包含四个模块,全都是选择题

  • 言语表达,10 题,限时 10 分钟左右
  • 图表分析,10 题,限时 10 分钟左右
  • 图形推理,10 题,限时 10 分钟左右
  • 性格测评,158 题,不限时

# 笔试

题型:15 道单选题,2 道算法题,2 道问答题

限时 60 分钟

单选题涉及的知识:

  • 机器学习
  • python
  • 排序算法

算法题:

  • 最长回文子序列(力扣 516):ACM 模式
  • 二叉树的层序遍历(力扣 102):核心代码模式

问答题:

  • AUC 的计算
  • SQL 语句

# 蔚来(智能调度和控制算法工程师)

# 提前批

# 笔试(大数据的试卷)

10 道单选题:设计模式、概率论相关知识点

9 道不定项选择题:操作系统、数据库相关知识点

3 道算法题(核心代码模式):

  • 合并二叉树(力扣 617
  • 爬楼梯(力扣 70 )进阶版:每次可以爬 1 或 2 或 3 个台阶
  • 滑动窗口最大值(力扣 239

# 正式批

# 测评(北森系统)

10 道言语理解,每小题有相应限时

10 道图表分析,每小题有相应限时

10 道图形推理,每小题有相应限时

99 道性格测试,每小题有相应限时

# 三一(算法工程师)

# 测评(北森)

行测,每题都有对应的限时:

  • 言语理解与表达,一共 11 题
  • 图表分析,一共 10 题
  • 图形推理,一共 10 题

性格测评,不限时:

  • 98 道选择题:每题需从三个选项中选出最符合、最不符合
  • 100 道单选题

# 笔试

一共 30 道选择题(20 道单选,10 道多选),限时 60 分钟:

  • 数据结构与算法:图论(最短路径、最小生成树、有向图、邻接矩阵)、栈、动态规划的基本要素、贪心思想、回溯法
  • 机器学习相关:线性回归、生成模型、基于二次准则函数的 H-K 算法、感知器算法、统计模式识别分类问题、map-reduce 框架及相关算法、K - 均值算法、判别式模型、决策树的启发函数
  • 操作系统:内存管理、线程
  • 运筹优化相关:分支定界、TSP 问题的时间复杂度、路径规划算法、应用 Johnson 法则的流水作业调度所采用的算法、无约束优化问题的相关算法、PnP 问题的求解方法
  • 排列数与组合数
  • 编程语言:C++ 语句、类的静态成员、python 中的复数

# 一面

自我介绍

学习成绩

英语六级成绩

用的什么编程语言

简述利用 matlab 实现的一个算法

对汽车有没有什么了解

建议:

  • 后续要加强对汽车相关知识的学习
  • 要进一步熟悉一下 matlab,尤其是 simulink

面试一共 6 分钟(邮件里写的 20 分钟)

# 中兴(算法工程师)

# 测评(北森系统)

行测:

  • 言语理解与表达,一共 10 题,限时 10 分钟
  • 图形推理,一共 10 题,限时 10 分钟
  • 图表分析,一共 10 题,限时 10 分钟

性格测评,不限时:

  • 98 道选择题:每题需从三个选项中选出最符合、最不符合
  • 100 道单选题

# 面试

安排了软件工程师的面试

拒掉了面试

# 用友(运筹优化算法工程师)

# 测评

行测:数量关系、演绎论证、图形推理、图表分析,一共 28 道选择题,限时 30 分钟

性格测评:一共 88 题(每题需从三个选项中选出最符合、最不符合),限时 30 分钟

# 大疆(决策与规划算法工程师)

# 测评

一共 80 道题,限时 80 分钟

  • 行测:数量关系,演绎论证,15 题左右
  • 性格测试

# 笔试

一共 25 道不定项选择题,限时 60 分钟

内容涉及以下方面:

  • ROS
  • git
  • 多项式曲线、B spline、羊角螺线
  • Dijkstra、A*、RRT、RRT* 路径规划算法(特性比较)
  • line search、无约束的路径规划、采用 邻接矩阵或邻接表 的 Dijkstra 算法的复杂度
  • 判断凸函数、判断凸约束
  • 多项式曲线刻画曲率能否为凸约束、庞特里亚金最大化原理、半正定优化是否为凸优化问题
  • C++ 模板编程、返回值
  • 算法的时间复杂度
  • 链表操作的时间复杂度
  • unordered_map 的底层实现以及相关特性
  • SO ()、SE ()、四元数与自由度
  • 计算排列数、计算事件发生的概率、计算数学期望
  • 平面空间索引、K-D tree、R-tree、三维空间索引

# 杉数科技(算法工程师 - 运筹优化方向)

# 一面

自我介绍

讲解项目(大概聊了 20 分钟)

KKT 条件

  • KKT 条件是最优解的充分条件还是必要条件
  • 在什么情况下 KKT 能作为充分条件
  • KKT 的具体内容

从 branch-and-bound 、Benders 分解、Largrange 松弛、列生成 四个算法中选择一个算法,讲解其原理以及应用场景

使用的编程语言,有没有使用 C++ 实现算法

给两道场景题,要求建立数学模型(口述):都是排产、排程相关的场景

  • 第一道的大概内容:假设你是某饭店的老板,饭店里有一台冰箱可以存放盒饭(每一份盒饭可以保存两个小时),如果盒饭库存不够就需要现场准备。现场准备所需的成本与提前准备的成本不相等,并且,顾客的数量是随机的(有以往的顾客数量信息)。问:如果规划 冰箱存放的盒饭数量 以及 现场所需准备的盒饭数量,以使得总成本最小?

  • 第二道的大概内容:假设你是某电子工厂的老板,现要在一年内生产 A、B 两类产品各 5 千万个,若当天生产的是 A 产品,则可生产 a 个,若当天生产的是 B 产品,则可生产 b 个。假设:若当天生产 A 类产品且第二天生产 B 类产品,或者,当天生产 B 类产品且第二天生产 A 类产品,两种情况都会产生额外的成本。即,生产产品的类别的变化,会带来额外成本。问:如何确定每一天生产的产品类别,使得生产产品类别的变化次数最少?

面试官介绍业务(主要是与工厂的排班排程相关的实际问题),并且主要使用 python

反问:

  • 会参与 COPT 求解器的研发吗?
  • 面试有多少轮(三轮)

面试一共 50 分钟左右(邮件里写的是 60 分钟)

面试官很友好,并且会及时提供引导。面试体验挺不错,虽然很多都不会 hh

# 笔试

一共两道题,24 小时内做完

  • 现有一家移动运营商(例如中国移动、中国电信)需要为一座城市建造基站,已知该城市终端用户的所在位置和所需的移动流量,可选的基站建造位置,以及不同类型基站的覆盖范围和最大流量。请帮助基站规划员决策需要布置的基站数量,所选的基站位置以及每小时的基站运行状态(无流量需求时基站可关闭,假设基站可随意开关且没有额外成本),使得该家公司的支出总成本最小,包括基站建造成本以及基站运营成本。

    • 假设每个时间段内的终端需求都需要被满足,建立数学规划模型,设计最优的基站建设及运营方案。可根据需要添加合理的前提假设。
    • 假设每个时间段内的终端需求不需要都被满足,但是未被满足的流量需求会产生额外成本,请修改模型并简述和模型 1 的差异。
    • 如果没有可选的基站位置,城市里的任何位置都可建造基站,请简述如何修改你的方案和模型。
    • 如果可选的基站点过多,请简述如何修改模型,使得在可接受的时间范围内求解模型。
    • 如果每个终端用户的流量需求不确定,请简述如何求解这个问题。
  • 某学生必须在 4 个不同系中选修 10 门课程,每个系至少选 1 门。这个学生将每个系选修课程数目与获得知识量按照 100 分衡量如表格所示。要争取获得的知识量达到最大。

    • 针对以上场景:
      • 请使用动态规划求解该问题。(编程)
      • 请使用混合整数规划求解该问题。(调用任意求解器编程)
    • 若 C 的选修课数量不得多于 D:
      • 请使用动态规划求解该问题。(编程)
      • 请使用混合整数规划求解该问题。(调用任意求解器编程)

备注:优先使用 python

# 二面

两个面试官,副总裁和业务总监

首先进行自我介绍,讲一讲对杉数的认识,自己的优势

自己对这一岗位的工作规划,可能遇到的问题以及解决方案

介绍项目

反问

# 顺丰科技(运筹优化算法工程师)

# 测评

言语理解、性格测评、情景题

# 笔试

120 分钟

选择题:单选、多选共 34 道题,一共 70 分:主要考察运筹优化算法、概率论相关

编程题:两道,ACM 模式,每题 15 分

  • 幸运数:如果一个数在十进制表示下数字 5 出现了不少于 5 次,则这个数是一个幸运数。求:大于 N 的最小的幸运数

  • 猜排列游戏:小明有一个由 1 到 n 的整数组成的排列,让你来猜出这个排列是什么。每次可以猜测某个位置的数字,小明会告知你的猜想是 “大了”、“小了” 或者 “正确”。求:在最坏情况下,需要猜测几次,才能在排列的所有位置都得到小明的 “正确” 的回复。

# 小米(运筹 / 强化学习算法工程师)

# 测评(北森系统)

行测:

  • 言语理解与表达,一共 10 题,每题都有相应限时
  • 图形推理,一共 10 题,每题都有相应限时
  • 图表分析,一共 10 题,每题都有相应限时

性格测评,不限时:

  • 98 道选择题:每题需从三个选项中选出最符合、最不符合
  • 100 道单选题

性格测评的这两个板块直接复用了之前做过中兴的测评

# 笔试(算法方向)

16 道单选题,每题 2 分,主要涉及以下方面的知识点:

  • 机器学习
  • 图像处理
  • 数字信号处理(滤波器、快速傅里叶变换)
  • 快速排序、链表操作
  • 概率论与数理统计

17 道多选题,每题 2 分,涉及以下内容:

  • 栈操作
  • 动态规划代码
  • 向量范数
  • 快速傅里叶变换
  • 机器学习(监督学习、生成式模型)
  • 矩阵的秩
  • 图像处理过程中的噪声
  • 凸函数

2 道编程题,每题 17 分,均为 ACM 模式:

  • 给定一个数组,每一次可以从数组的最左侧或者最右侧移除一个数,同时,令数字 x 减去移除的这一元素。问:至少需要多少次移除操作,才能使 x 变为 0 。如果无法使得 x 变为 0,则输出 -1
    • 输入:一共三行,其中,第一行是一个用 [] 包围一个数字序列(数字与数字之间用逗号分隔),第二行是数字序列的长度,第三行是数字 x
    • 输出:一个整数,表示需要的移除次数(无法将 x 变为 0 时输出 -1 )
  • 给定两个序列,计算两个序列的卷积和互相关
    • 输入:一共两行,分别为两个序列,其中,每一行的第一个数表示序列长度,紧接着一个逗号,然后是用空格分隔的序列
    • 输出:一共两行,分别为卷积和互相关的结果,其中,每一行的第一个数表示结果序列长度,紧接着一个逗号,然后是用空格分隔的结果序列

# 美团(运筹优化研发工程师)

# 笔试

四道编程题,每题 20 分:

  • 第一题:字符串匹配
  • 第二题:数组、哈希表
  • 第三题:字符串分割
  • 第四题:背包问题

三道多项选择题:

  • 第一题,6 分:下列哪些属于分类任务常用损失函数:Softmax 损失、L2 损失、L1 损失、交叉熵损失
  • 第二题,6 分:目前对于最近邻分类的研究在于:探索更加合理的 K 值、寻求更接近于实际的距离函数、建立高效的索引、运用更加精确的概率估测方法以取代简单的投票机制
  • 第三题,8 分:当想创建新表的时候,hive 输入命令 create table if not exist,以下哪些情况会发生:表名存在时报错、表名不存在时不报错、表名不存在时报错、表名存在时不报错

一共限时 120 分钟

# 一面

面试官首先自我介绍,并介绍事业部的主要工作,介绍面试流程

自我介绍

有没有实习

聊项目

对遗传算法、禁忌搜索等算法有没有了解?

介绍一下遗传算法

如果用遗传算法来求解 TSP 问题要怎么求解?

对禁忌搜索这些算法有没有什么了解?

对机器学习是否有了解?

有没有做相应的机器学习算法实践?

主要用的是什么编程语言?做题用什么语言?

手撕代码,核心代码模式(在牛客上进行的面试,面试官可以直接在系统上出题)

反问:

  • 部门的主要业务
  • 工作内容

面试一共 45 分钟,其中,25 分钟项目、10 分钟代码、5 分钟反问

# 字节跳动(算法工程师 - 运筹优化)

# 笔试

120 分钟

四道编程题,ACM 模式,分值分别为 20,25,25,30

  • 弹珠游戏(动态规划)
  • 三数和赛高数组

# 华为(AI 工程师 - 决策推理方向)

# 一次笔试

一共三题,分值分别为 100、200、300,限时 120 分钟

猪场防疫(第一题):猪场现有 N 只猪,编号从 0 到 N - 1 (每只猪无论生死都有唯一的编号)。老李在每只猪生产的时候记录了生产的母猪和出生的小猪,格式为 x y1 y2 y3 ... ,其中,x 为母猪,y1、y2、y3... 为新生的小猪,以上编码均在 0 ~ N - 1 范围内,每只猪可以多次生产,每只小猪都只有一个猪妈妈。现需要检查任意两只猪是否有亲戚关系(两只猪具有相同的祖先),并计算出关系亲疏情况(关系距离,若相同编号则距离为 0)

  • 输入:
    • 第一行输入总数 N
    • 第二行输入后续生产记录行数 M
    • 后续 M 行输入生产记录,以空格分隔
    • 最后一行输入待检查的两只猪的编号 m1 和 m2
  • 输出:
    • 一个整数,表示 m1 和 m2 之间的关系距离,无亲戚关系输出 -1

速战速决(第二题):在一个 M 行 N 列的街区中,有一个士兵 S 和一个敌人 E ,标识 X 为无法通过的街区,标识 B 为可以通过的街区;士兵在一个单位时间内可以从一个街区移动到相邻的街区(每次只能水平或垂直方向移动一个街区);士兵每次改变方向时,需要额外花费一个单位的时间(士兵第一次移动一个街区的时候,不用考虑其初始方向,即,只需要一个单位时间即可到达相邻街区)。计算士兵最少需要多少时间才能到达敌人所在的街区

  • 输入:
    • 第一行两个数字,分别为街区的大小,M 和 N (1 <= M, N <= 1000,M 、N 不同时为 1)
    • 接下来 M 行,每行 N 个字母,字母 S 表示士兵所在街区,字母 E 表示敌人所在街区,字母 X 表示障碍,字母 B 表示可以经过的街区(只有一个 S,一个 E)
  • 输出:
    • 最少需要的时间,当士兵永远无法到达敌人所在街区时输出 -1

# 二次笔试(时隔一个月)

  • 字符串压缩,例如,将 "aaBcaBcaBcc" 压缩成 "a3 (aBc) c"、将 "aAABBAABB" 压缩成 "a2 (2 (A) 2 (B))"

  • 三叉树中的最大路径和

  • 多进制计算器

# 京东

# 笔试

选择题,主要考察算法与数据结构、机器学习相关知识

三道编程题:

  • 定义一个字符串为 “好串” :当且仅当相邻两个字母不相同。对于一个仅由 'r' 、'e'、'd' 三种字符组成的字符串,可以将相邻两个相同的字母同时删除,并在其位置生成任意一个字母('r'、'e'、'd' 三种中的一种)。例如,对于字符串 "dedd",可以选择将 "dd" 变成 "r",字符串即变为 "der" 。现给定一个字符串,问:至少需要多少次操作才能将该字符串变成 “ 好串 ”

    • 输入描述:一个长度不超过 200000 的、仅由 'r' 、'e'、'd' 三种字符组成的字符串
    • 输出描述:一个整数,代表操作的最小次数
  • 对于一个长度为 n 的数组,现希望将一些数(不少于 2 个数)染红,满足任意两个染红的数之和都是偶数。问:一共有多少种不同的染色方案?答案对 109 + 7 取模。规定:对于两个方案,只要存在某个数的染色情况不同,则认为是两种不同的方案

    • 输入描述:第一行输入一个正整数 n,代表数组长度;第二行输入 n 个正整数 ai ,代表数组的元素
    • 数据范围:2 <= n <= 105,1 <= ai <= 109
    • 输出描述:一共整数,代表不同的方案数

# 百度

# 笔试

15 道单选题,一共 45 分,涉及知识点:

  • SQL
  • 快速排序
  • 二分查找
  • 堆串
  • ssh 公钥命令
  • 内存分配与释放(最佳适配算法)
  • linux 系统
  • 同步关系和互斥关系

5 道不定项选择题,一共 15 分,涉及知识点:

  • linux
  • C++

3 道编程题,分值分别为 10 分、15 分、15 分,均为 ACM 模式

  • 给定字符串 s ,问:字符串 s 中含有多少个形如 baidu 的子串(即,子串长度为 5,第一、四个字母是辅音字母,第二、三、五个字母是元音字母,并且,子串没有重复字母)

  • 已知字符串 str 仅包含 '0' 和 '1' ,每一次可反转字符串 s 中的两个连续字符(例如,"01" 反转成 "10" ),问:是否可以在有限次数内将 str 变成所有字符均相同的字符串(即,所有字符均为 '1' ,或者,所有字符均为 '0' )

    • 例如,"101" 可以通过 2 次操作变成 "000" ,输出 "Yes" ;"11111" 无需操作即满足条件,输出 "Yes" ;"1011" 无法变成所有字符均相同的字符串,输出 "No"
    • 注:输入含有多组样例,需针对每组样例进行判断并输出
  • 给定一个 m 行 n 列的方格,其中,每个小方格有 'r' 、'e' 、'd' 三种字符中的某一个字符。现从左上角出发,每次可以往四个方向(向上、向下、向左、向右)中的某个方向移动一步,但是,不能从字符 'r' 移到字符 'e' 、不能从字符 'e' 移到字符 'd' 、不能从字符 'd' 移到字符 'r' 。问:至少需要移动多少步才能到达右下角。如果无法到达右下角,则输出 -1

    • 采用深度优先搜索(回溯)会超时,只能通过 23.08% 的样例
    • 需要采用广度优先搜索(没来得及写)

笔试一共限时 120 分钟

# 招银网络科技

# 测评(北森系统)

行测:

  • 言语理解与表达,一共 11 题,每题有相应限时
  • 图形推理,一共 11 题,每题有相应限时
  • 图表分析,一共 11 题,每题有相应限时

性格测评,不限时:

  • 98 道选择题:每题需从三个选项中选出最符合、最不符合
  • 100 道单选题:需从 非常不符合、比较不符合、比较符合、非常符合 四个选项中选择一个

# 美的(嵌入式软件)

# 笔试

10 道单选,每题 2 分,主要考察操作系统、计算机网络的相关知识

5 道不定项选择题,每题 4 分(少选错选不得分),主要考察操作系统、计算机网络的相关知识

3 道编程题,ACM 模式:

  • 给定一个字符串,删除其中连续的多余空格:15 分
  • 输入一个十六进制数,将其表述成 32 位二进制数然后反转,再将反转得到的二进制数转换成十六进制输出:20 分
  • 给一个数组和一个目标数,判断存在一个组合使得元素和为目标数:25 分

# 中信银行信用卡中心

# 测评(TAS 测评系统)

Talent5 大五职业性格测评:共 138 题,不限时

iLogic 言语推理测评:共 15 题,限时 20 分钟(每题有相应限时)

iLogic 数字推理测评:共 15 题,限时 20 分钟(每题有相应限时)

iLogic 逻辑推理测评:共 10 题,限时 17 分钟(每题有相应限时)

iDriver 职业驱动力测评:共 112 题,不限时

Menlth 心理状态扫描:共 50 题,不限时

# 笔试

30 道单项选择题,每题 2 分,考察 Linux 系统、Java、计算机网络、MySQL、数据结构 相关知识

3 道编程题,ACM 模式,一共 40 分

  • 字符串中出现次数不少于 2 次的字母
  • 给定字符串,将元音字母都变成小写,辅音字母都变成大写
  • 给定 n 行 n 列的矩阵,将矩阵水平方向和垂直方向各翻转一次