TP-Link(嵌入式软件)

笔试

选择题:

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

简答题:

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

编程题:

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

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

行测:(每部分 10 分钟)

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

一面

操作系统会不会?不会

计算机网络会不会?会一点,自学的

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

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

解决哈希冲突的方法(只回答出 二次哈希法 和 拉链法)

介绍拉链法的原理

OSI 参考模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层(面试时以为是 五层模型,表示层、会话层没答出来)

第一轮面试一共 10 分钟

二面

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

  • 未答出来,一开始想的是 6 次,经面试官提醒后,认为是 5 次

  • 正确答案:最少需要操作三次,过程包括:

    • 利用天平将 140g 盐分成两份 70g
    • 利用 9g 砝码将 70g 盐分成 9g 和 61g
    • 利用 2g 砝码与 9g 盐将 61g 盐分成 11g 和 50g

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

  • 先讲思路,再在自己的 IDE 上编程实现(核心代码模式)
  • 面试时只想到分别找出两个节点的路径(回溯算法),通过比较两个路径得出最近的公共祖先

最后问了项目,大概 10 分钟左右(因为之前的算法题花了太多时间)

第二轮面试一共 40 分钟

三面

自我介绍

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

为嵌入式软件岗做了哪些相关准备?(只回答了 C++)

计算机网络、操作系统、数据结构与算法学过吗?(学过计算机网络,数据结构与算法也学过、在刷题,操作系统没学过)

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

TCP 与 UDP 有什么区别?

如何理解 TCP 的可靠传输?

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

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

研究生课题的主要内容?目的是什么?是不是自己一个人完成的?成果?(两个课题都有问到)

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

父母的工作

兄弟姐妹的情况

(回答得都比较简短,所以问题有点多。。)

反问:

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

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

第三轮面试一共 18 分钟

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

测评

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

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

笔试

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

限时 60 分钟

单选题涉及的知识:

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

算法题:

  • 最长回文子序列(力扣 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 能作为充分条件(只回答上 Slater condition 这个词,面试官追问 Slater condition 的具体内容,没能答上来,然后面试官给出答案:强对偶条件下,KKT 能作为充分条件)
  • KKT 的具体内容(回答了 原始可行性、对偶可行性 和 互补松弛性,还有一个忘记了,然后面试官补充了定常方程式)

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

  • 选的是 branch-and-bound
  • 大概讲了分支和剪枝的原理,然后说 branch-and-bound 适用于整数规划和混合整数规划
  • 定界操作没太能答上来,只说了松弛成线性规划,得到一个 bound

使用的编程语言(回答 matlab 和 C++),有没有使用 C++ 实现算法(回答 没有,主要用来刷题)

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

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

    • 考虑到将来的顾客数量是未知的,没能想到构造概率模型去做预测,所以没能建立出数学模型。随后面试官给出了他的思路
  • 第二道的大概内容:假设你是某电子工厂的老板,现要在一年内生产 A、B 两类产品各 5 千万个,若当天生产的是 A 产品,则可生产 a 个,若当天生产的是 B 产品,则可生产 b 个。假设:若当天生产 A 类产品且第二天生产 B 类产品,或者,当天生产 B 类产品且第二天生产 A 类产品,两种情况都会产生额外的成本。即,生产产品的类别的变化,会带来额外成本。问:如何确定每一天生产的产品类别,使得生产产品类别的变化次数最少?
    • 回答:定义二值变量 x i x_i xi​ 表示 第 i i i 天生产 A 类产品或 B 类产品,例如, x i = 1 x_i = 1 xi​=1 表示生产 A 产品、 x i = 0 x_i = 0 xi​=0 表示生产 B 产品,则生产产品类别的变化次数为 ∑ i ∣ x i + 1 − x i ∣ \sum_i \vert x_{i + 1} - x_{i} \vert ∑i​∣xi+1​−xi​∣
    • 追问:如果要生产 A 、B、C 三个类别的产品呢?(没能想出来,面试官提醒可以设置多个变量,但也没想到,后来面试官给出他的思路:定义 x i x_i xi​ 表示第 i i i 天是否生产 A 产品、 y i y_i yi​ 表示第 i i i 天是否生产 B 产品、 z i z_i zi​ 表示第 i i i 天是否生产 C 产品)

面试官介绍业务(主要是与工厂的排班排程相关的实际问题),并且主要使用 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 )
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;int MAX = 1 << 30;
int ans = MAX;void DFS(vector<int> &nums, int left, int right, int target, int depth) { // 暴力搜索if (left > right) return;if (target == 0) {ans = min(ans, depth);return;}DFS(nums, left + 1, right, target - nums[left], depth + 1);DFS(nums, left, right - 1, target - nums[right], depth + 1);
}int main() {// 读取数据vector<int> nums;string s = "";getline(cin, s);int n = 0;cin >> n;int x = 0;cin >> x;s = s.substr(1, s.size() - 2); // 去掉首尾的括号stringstream ss(s);string tmp = "";while (getline(ss, tmp, ',')) nums.push_back(stoi(tmp));DFS(nums, 0, n - 1, x, 0);if (ans == MAX) cout << -1 << endl;else cout << ans << endl;// system("pause");return 0;
}
  • 给定两个序列,计算两个序列的卷积和互相关

    • 输入:一共两行,分别为两个序列,其中,每一行的第一个数表示序列长度,紧接着一个逗号,然后是用空格分隔的序列
    • 输出:一共两行,分别为卷积和互相关的结果,其中,每一行的第一个数表示结果序列长度,紧接着一个逗号,然后是用空格分隔的结果序列

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

笔试

四道编程题,每题20分:

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

三道多项选择题:

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

一共限时 120 分钟

面试

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

自我介绍

有没有实习?

聊项目

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

介绍一下遗传算法

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

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

对机器学习是否有了解?(了解朴素贝叶斯、感知器和 BP 神经网络)

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

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

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

  • 力扣 121 :买卖股票的最佳时机
  • 力扣 42 :接雨水

反问:

  • 部门的主要业务?供应链相关,规划供货、配送方案
  • 工作内容?主要涉及预测、数学建模和启发式算法相关

面试一共 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
  • 输入样例 1 :

     310 1 20 1
    
  • 输出样例 1:

     1
    
  • 输入样例 2:

     520 1 21 3 42 4
    
  • 输出样例 2:

     3
    

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

  • 输入:

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

    • 最少需要的时间,当士兵永远无法到达敌人所在街区时输出 -1
  • 输入样例 1 :

     6 6SBBBBBBXXXXBBBXBBBXBBXXBBXBBXBBBXBEB
    
  • 输出样例 1:

     13
    
  • 输入样例 2:

     3 3SXEBXBBBB
    
  • 输出样例 2:

     8
    

二次笔试

第一题:字符串压缩,例如,将 “aaBcaBcaBcc” 压缩成 “a3(aBc)c”、将 “aAABBAABB” 压缩成 “a2(2(A)2(B))”

第二题:三叉树中的最大路径和

#include <iostream>
#include <vector>
#include <queue>
#include <climits>
#include <algorithm>using namespace std;struct TreeNode {int val;TreeNode* left;TreeNode* mid;TreeNode* right;TreeNode (int _val) : val(_val), left(nullptr), mid(nullptr), right(nullptr) {}// TreeNode () : val(0), left(nullptr), mid(nullptr), right(nullptr) {}// TreeNode (int _val, TreeNode* _left, TreeNode* _mid, TreeNode* _right) : val(_val), left(_left), mid(_mid), right(_right) {}
};TreeNode* buildTree(vector<int>& nums) { // 利用层序遍历数组 nums 构建三叉树TreeNode* root = new TreeNode(nums[0]);queue<TreeNode*> que;que.push(root);int idx = 1;while (!que.empty() && idx < nums.size()) {int size = que.size();for (int i = 0; i < size; ++i) {TreeNode* node = que.front();que.pop();if (idx < nums.size() && nums[idx] != -1) { // left 子节点node->left = new TreeNode(nums[idx]);que.push(node->left);// cout << node->left->val << endl;}else node->left = nullptr;++idx;if (idx < nums.size() && nums[idx] != -1) { // mid 子节点node->mid = new TreeNode(nums[idx]);que.push(node->mid);// cout << node->mid->val << endl;}else node->mid = nullptr;++idx;if (idx < nums.size() && nums[idx] != -1) { // right 子节点node->right = new TreeNode(nums[idx]);que.push(node->right);// cout << node->right->val << endl;}else node->right = nullptr;++idx;}}return root;
}vector<int> order;void traversal(TreeNode* root) { // 层序遍历三叉树if (root == nullptr) return;queue<TreeNode*> que;que.push(root);while (!que.empty()) {int size = que.size();for (int i = 0; i < size; ++i) {TreeNode* node = que.front();que.pop();order.push_back(node->val);if (node->left) que.push(node->left);if (node->mid) que.push(node->mid);if (node->right) que.push(node->right);}}
}int ans = INT_MIN; // 最大路径和int gain(TreeNode* root) { // 计算 以 root 为起点、向下延申的最大路径和if (root == nullptr) return 0;int left = gain(root->left);   // left 子树最大增益left = max(left, 0);int mid = gain(root->mid);     // mid 子树最大增益mid = max(mid, 0);int right = gain(root->right); // right 子树最大增益right = max(right, 0);int maxgain = root->val + max({left + mid, left + right, mid + right}); // 找出最大路径和:从 left 经 root 到 mid 、从 left 经 root 到 right 、从 mid 经 root 到 rightans = max(ans, maxgain);       // 更新最大路径和return root->val + max({left, mid, right}); // 以 root 为起点、向下延申的最大路径和
}int main() {// 读取输入int n = 0;cin >> n;vector<int> nums(n, 0);for (int i = 0; i < n; ++i) cin >> nums[i];// int n = 19;// vector<int> nums = {20, 12, 30, 15, -1, -1, -1, -1, -1, -1, 15, 5, 25, -1, -1, -1, 16, -1, 22};// 构建三叉树TreeNode* root = buildTree(nums);// // 遍历三叉树,检查三叉树构建是否正确// traversal(root);// for (int i = 0; i < order.size(); ++i) cout << order[i] << " ";// cout << endl;// 计算最大路径和gain(root);cout << ans << endl;return 0;
}

第三题:多进制计算器

京东

笔试

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

三道编程题:

定义一个字符串为 “ 好串” :当且仅当相邻两个字母不相同。对于一个仅由 ‘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 列的矩阵,将矩阵水平方向和垂直方向各翻转一次

2023届求职 笔试面试记录相关推荐

  1. 【数字设计】芯动科技|芯原科技_2023届_笔试面试题目分享

    芯片设计验证社区·芯片爱好者聚集地·硬件相关讨论社区·数字verifier星球 四社区联合力荐!近500篇数字IC精品文章收录! [数字IC精品文章收录]学习路线·基础知识·总线·脚本语言·芯片求职· ...

  2. 【数字设计】经纬恒润_2023届_笔试面试题目分享

    芯片设计验证社区·芯片爱好者聚集地·硬件相关讨论社区·数字verifier星球 四社区联合力荐!近500篇数字IC精品文章收录! [数字IC精品文章收录]学习路线·基础知识·总线·脚本语言·芯片求职· ...

  3. 2023算法岗秋招笔试面试记录

    面经 秋招笔试面试全记录 字节-电商 字节实习一面: 二分类的损失函数是什么,怎么算? 多分类的损失函数怎么算? 如果文本分类的标签有多个,比如一个文本同时属于多个label那怎么办? 如果文本分类里 ...

  4. 10月笔试面试记录分享

    笔试面试 1. 笔试 2. 面试 2.1. 云账户: 10.09 二面 2.2. 广州海格通信: 10.10 电话面试 2.3. 银联数据: 10.11 面试(15min, 简单) 2.4. 政采云: ...

  5. 笔试面试记录(百胜餐饮西安研发)

    百胜餐饮–餐饮公司和KFC,麦当劳,小肥羊等有合作,具体上网自行搜索 1.笔试(现场答卷,自由时间,大概45分钟) 1.熟悉的网络协议有哪些,一句话说明其作用 2.线程和进程的区别.进程/线程之间的通 ...

  6. 记一次工信部电子5所的笔试面试记录

    昨天,我怀着忐忑的心情去参加了工信部电子5所的笔试与面试,由于招聘公告上并没有具体说明笔试考什么内容,小编内心以为考行测,然后就看了一下行测,到试场上考试时发现,考的并不是行测,而是专业知识,顿时就傻 ...

  7. 富途秋招笔试面试记录

    首先说明一点我不是大佬,就是一名很普通的安卓程序员.... 昨天晚上电话面试CVTE,问的基本上都是Java中很重要的知识,然而我不会,项目基本上没怎么问,主要是问某些Java中的知识有没有在项目中用 ...

  8. 2019届浦发银行笔试面试经验总结

    7.10号通知通过简历筛选,进入笔试环节.7.13号正式笔试,题型就是正常的银行考试题目均为选择题,包括行策.英语.推理.语句判断以及简单的计算机基础知识.题量非常大,如果每个题都认真看的话,很可能时 ...

  9. 【2023届秋招面试篇】经纬恒润自动驾驶感知算法岗位一面

    目录 前言 一面 总结 前言 下午2:00 - 3:00面的经纬恒润的感知算法岗 总体情况:项目相关的所有问题全部回答出来了,语言类python和pytorch的问题没回答出来 面试官挺好,双方会有交 ...

最新文章

  1. 复兴or幻象?VR的2021三重门
  2. OpenCvSharp 形态学操作(膨胀、腐蚀)
  3. 《MySQL DBA修炼之道》——2.3 其他MySQL分支的安装
  4. CXF+JAXB处理复杂数据
  5. 爬虫只能用python吗_只针对 Python 爬虫,该如何学习?
  6. uml 时序图_UML各种图总结:
  7. 计算机在智慧交通的应用论文,智能交通的毕业论文
  8. 第三十期:BAT 为什么都看上了重庆?
  9. 高性能MySQL(3)——创建高性能索引
  10. 计算机组成原理 - 基本概念
  11. CSR8670项目实战:BlueSiri轻智能蓝牙音箱
  12. Javascript AJAX回调函数传递参数
  13. Kettle PDI工具连接Mysql时报Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found, make sure the ‘MySQL
  14. 安卓日志点击无反应_日志MIUI 12 20.9.22 内测更新综合资讯 “小米营业厅”内测...
  15. GNU和GPL是什么?
  16. 【ROS-Navigation】—— Astar路径规划算法解析
  17. WTK 2.5 安装详解(Windows XP)
  18. JQuery的属性与样式操作
  19. DT时代,小数据时代的未来发展
  20. 分享一款极好用的磨皮软件

热门文章

  1. linux远程端口查看
  2. 世界上最好的图片无损压缩软件
  3. Android调试常用命令
  4. cd与cd /d命令
  5. Cisco IPCC概述
  6. Overleaf (LaTex) 使用笔记(自用)
  7. win10下安装MySQL8
  8. Python-冒泡排序函数
  9. 暗黑破坏神 用什么 开发的_软件开发中最具破坏性的五种态度
  10. MySQL初级篇 | 修改MySQL密码的四种方法(适合初学者)